2023-09-24 17:16:25 -04:00

56 lines
1.8 KiB
Python

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
from faker import Factory
import random
from app.models import Players, Heroes
class SeedDatabase:
def __init__(self, **kwargs):
self.fake = Factory.create()
self.player_num = kwargs[players]
self.hero_num = kwargs[heroes]
self.team_num = kwargs[teams]
player_seed = Seed.seed_players()
hero_seed = Seed.seed_heroes()
team_seed = Seed.seed_teams()
if(player_seed == True) and (hero_seed == True) and (team_seed == True):
print("Success!")
def seed_players():
for i in self.player_num:
Players.create(username = ''.split(self.fake.name())[1],\
password = random_password(),\
email = self.fake.email(),\
created_at = __random_datetime())
return True
def seed_heroes():
for i in self.hero_num:
Heroes.create(name = self.fake.text().split()[3],\
type = self.__random_hero(),\
strength = random.randrange(6,55),\
player = self.__random_player())
return True
def seed_teams():
for i in self.team_num:
team = Teams.create(name = self.fake.company())
for j in random.randrange(3,12):
team.heroes.add(self.__random_hero())
return True
def __random_password():
return ''.join(random.sample(string.ascii_lowercase, random.randrange(4,14)))
def __random_datetime():
return datetime.now() - datetime.timedelta(random.randrange(2,3123))
def __random_hero_type():
types = ['Wizard', 'Warrior', 'Ranger', 'Druid', 'Shaman', 'Bard']
return ''.join(random.sample(heroes, 1))
def __random_player():
return Players.objects.filter(pk=random.randrange(1,self.player_num))
def __random_hero():
return Heroes.objects.filter(pk=random.randrange(1,self.hero_num))