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 pathdebug.py
More file actions
69 lines (57 loc) · 2.2 KB
/
Copy pathdebug.py
File metadata and controls
69 lines (57 loc) · 2.2 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
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from .models import Base, Company, Dev, Freebie
# Connect to your existing freebies.db
engine = create_engine('sqlite:///lib/freebies.db')
Session = sessionmaker(bind=engine)
session = Session()
def run_debug():
print("=== Debugging freebies app ===")
# Print all companies
companies = session.query(Company).all()
print("\nCompanies:")
for c in companies:
print(f"- {c.name} (Founded {c.founding_year})")
# Print all devs
devs = session.query(Dev).all()
print("\nDevs:")
for d in devs:
print(f"- {d.name}")
# Print all freebies with details
freebies = session.query(Freebie).all()
print("\nFreebies:")
for f in freebies:
print(f"- {f.print_details()}")
# Test Company.oldest_company()
oldest = Company.oldest_company(session)
print(f"\nOldest company: {oldest.name} (Founded {oldest.founding_year})")
# Test Company.give_freebie()
company = companies[0]
dev = devs[0]
new_freebie = company.give_freebie(dev, "Test Item", 100)
session.add(new_freebie)
session.commit()
print(f"\nNew freebie added: {new_freebie.print_details()}")
# Test Dev.received_one()
print(f"\nHas {dev.name} received a 'Test Item'? {dev.received_one('Test Item')}")
# Test Dev.give_away()
# Dev gives away a freebie to another dev
if len(dev.freebies) > 0:
freebie_to_give = dev.freebies[0]
recipient_dev = devs[1] if len(devs) > 1 else devs[0]
print(f"\nBefore give_away: {freebie_to_give.print_details()}")
success = dev.give_away(recipient_dev, freebie_to_give)
session.commit()
print(f"Give away success? {success}")
print(f"After give_away: {freebie_to_give.print_details()}")
else:
print(f"\n{dev.name} has no freebies to give away.")
# Test relationships: company.devs and dev.companies
print(f"\nDevs who collected freebies from {company.name}:")
for d in company.devs:
print(f"- {d.name}")
print(f"\nCompanies that {dev.name} has collected freebies from:")
for c in dev.companies:
print(f"- {c.name}")
if __name__ == '__main__':
run_debug()