56 lines
1.8 KiB
Python
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)) |