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
105 lines (92 loc) · 3.51 KB
/
debug.py
File metadata and controls
105 lines (92 loc) · 3.51 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
from db import session
from models import Dev, Company, Freebie
def fetch_all_data():
"""Fetch all data from the database and display it."""
try:
devs = session.query(Dev).all()
companies = session.query(Company).all()
freebies = session.query(Freebie).all()
print("\n=== All Developers ===")
for dev in devs:
print(dev)
print("\n=== All Companies ===")
for company in companies:
print(company)
print("\n=== All Freebies ===")
for freebie in freebies:
print(freebie)
except Exception as e:
print(f"Error fetching data: {e}")
def test_freebie_details():
"""Test Freebie.print_details()"""
try:
tshirt = session.query(Freebie).filter_by(item_name="T-Shirt").first()
if tshirt:
print("\n=== Freebie Details ===")
print(tshirt.print_details())
else:
print("\nNo T-Shirt freebie found.")
except Exception as e:
print(f"Error testing Freebie.print_details: {e}")
def test_oldest_company():
"""Test Company.oldest_company()"""
try:
oldest_company = Company.oldest_company(session)
if oldest_company:
print("\n=== Oldest Company ===")
print(f"Oldest company: {oldest_company.name} (Founded in {oldest_company.founding_year})")
else:
print("\nNo companies found.")
except Exception as e:
print(f"Error finding oldest company: {e}")
def test_dev_received_one():
"""Test Dev.received_one()"""
try:
linda = session.query(Dev).filter_by(name="Linda").first()
if linda:
print("\n=== Checking Linda's Freebies ===")
print(f"Linda received a T-Shirt: {linda.received_one('T-Shirt')}")
print(f"Linda received a Mug: {linda.received_one('Mug')}")
else:
print("\nLinda not found in database.")
except Exception as e:
print(f"Error checking Linda's freebies: {e}")
def test_give_freebie():
"""Test Company.give_freebie()"""
try:
safaricom = session.query(Company).filter_by(name="Safaricom").first()
linda = session.query(Dev).filter_by(name="Linda").first()
if safaricom and linda:
print("\n=== Giving Freebie ===")
safaricom.give_freebie(linda, "Water Bottle", 12, session)
session.commit()
print(f"Linda received a Water Bottle: {linda.received_one('Water Bottle')}")
else:
print("\nEither Safaricom or Linda was not found.")
except Exception as e:
session.rollback()
print(f"Error giving freebie: {e}")
def test_give_away():
"""Test Dev.give_away()"""
try:
linda = session.query(Dev).filter_by(name="Linda").first()
alvin = session.query(Dev).filter_by(name="Alvin").first()
tshirt = session.query(Freebie).filter_by(item_name="T-Shirt").first()
if linda and alvin and tshirt:
print("\n=== Transferring Freebie ===")
linda.give_away(alvin, tshirt, session)
session.commit()
print(f"T-Shirt now belongs to: {tshirt.dev.name}")
else:
print("\nEither Linda, Alvin, or the T-Shirt was not found.")
except Exception as e:
session.rollback()
print(f"Error transferring freebie: {e}")
# Run all tests
if __name__ == "__main__":
fetch_all_data()
test_freebie_details()
test_oldest_company()
test_dev_received_one()
test_give_freebie()
test_give_away()