forked from learn-co-curriculum/python-p3-freebie-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathseed.py
More file actions
74 lines (58 loc) · 1.57 KB
/
seed.py
File metadata and controls
74 lines (58 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env python3
from faker import Faker
import random
from random import choice as rc
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from models import Company, Dev, Freebie
fake = Faker()
engine = create_engine('sqlite:///freebies.db')
Session = sessionmaker(bind=engine)
session = Session()
def create_companies():
companies = [
Company(
name=fake.company(),
founding_year=fake.year(),
)
for i in range(20)]
session.add_all(companies)
session.commit()
return companies
def create_devs():
devs = [
Dev(
name=fake.name()
)
for i in range(40)]
session.add_all(devs)
session.commit()
return devs
def create_freebies():
freebies = [
Freebie(
item_name=fake.word(),
value=random.randint(0, 20)
)
for i in range(100)]
session.add_all(freebies)
session.commit()
return freebies
def delete_records():
session.query(Company).delete()
session.query(Dev).delete()
session.query(Freebie).delete()
session.commit()
def relate_one_to_many(companies, devs, freebies):
for freebie in freebies:
freebie.company = rc(companies)
freebie.dev = rc(devs)
session.add_all(freebies)
session.commit()
return companies, devs, freebies
if __name__ == "__main__":
delete_records()
companies = create_companies()
devs = create_devs()
freebies = create_freebies()
companies, devs, freebies = relate_one_to_many(companies, devs, freebies)