- integrate faker library
- write script to populate fake data for testing
main
Guy Davis 9 months ago
parent 8155f3c8c4
commit b7431e26fc

@ -0,0 +1,54 @@
def populate():
from polls.models import Poll, Option
from random import randint
from faker import Faker
data_maker = Faker()
number_of_polls = 100
options_per_poll = (2, 5)
for i in range(number_of_polls):
poll = Poll()
question = data_maker.sentence()
question.replace(".", "?")
poll.question = question
poll.save()
for o in range(randint(*options_per_poll)):
option = Option()
option.poll = poll
option.text = data_maker.sentence()
option.save()
def create_users_and_votes():
from django.contrib.auth.models import User
from polls.models import Poll, Option, Vote
from random import choice, shuffle
from faker import Faker
data_maker = Faker()
users_to_create = 16
for i in range(users_to_create):
user = User.objects.create_user(
data_maker.unique.name(),
)
polls = list(Poll.objects.values_list("pk", flat=True))
# Shuffle polls list
shuffle(polls)
# Vote on 75% of the polls
for o in range(int(len(polls) * 0.75)):
poll = Poll.objects.get(pk=polls[o])
# Select a random option to cast as vote
option_id = choice(Option.objects.filter(poll=poll).values_list("pk", flat=True))
vote = Vote()
vote.poll = poll
vote.option = Option.objects.get(pk=option_id)
vote.user = user
vote.save()

@ -3,3 +3,4 @@ gunicorn==21.2.0
whitenoise==6.6.0 whitenoise==6.6.0
whitenoise[brotli] whitenoise[brotli]
chartkick==1.0.1 chartkick==1.0.1
faker==23.3.0
Loading…
Cancel
Save

Powered by TurnKey Linux.