-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathicecream_test.py
86 lines (59 loc) · 2.18 KB
/
icecream_test.py
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
import collections
import datetime
import unittest
import icecream
class IceCreamProviderFake():
def connect(self):
# no flakey connection here
pass
def process_order(self, order):
# pretend some cool order processing is happening here
return []
def _get_seeded_orders():
orders = icecream.Orders()
orders.add(datetime.date(2020, 9, 4), "swirl cone")
orders.add(datetime.date(2020, 9, 10), "rainbow sprinkle")
orders.add(datetime.date(2020, 9, 7), "cherry glazed")
return orders
class TestOrder(unittest.TestCase):
def test_add_item_multiple(self):
'''This test passes and should'''
orders = _get_seeded_orders()
expectedOrders = collections.defaultdict(list, {
datetime.date(2020, 9, 7): ["cherry glazed"],
datetime.date(2020, 9, 4): ["swirl cone"],
datetime.date(2020, 9, 10): ["rainbow sprinkle"],
})
self.assertDictEqual(orders.orders, expectedOrders)
def test_get_most_recent(self):
'''This test passes, but shouldn't'''
orders = _get_seeded_orders()
most_recent = orders.get_most_recent()
self.assertEqual(most_recent, "rainbow sprinkle")
def test_submit_orders(self):
orders = _get_seeded_orders()
provider = IceCreamProviderFake()
provider.connect()
orders.submit_orders(provider)
self.assertEqual(len(orders.orders), 0)
def test_get_total_orders_no_orders(self):
orders = icecream.Orders()
self.assertEqual(orders.get_total_orders(), 0)
def test_get_total_orders_some_orders(self):
orders = _get_seeded_orders()
self.assertEqual(orders.get_total_orders(), 3)
def _generate_mr_freezie_order():
'''Just a dummy method for demo purposes'''
return []
def _assert_order_updated(o):
'''Just a dummy method for demo purposes'''
pass
class TestMrFreezie(unittest.TestCase):
def test_process_order(self):
order = _generate_mr_freezie_order()
mrf = icecream.MrFreezie()
mrf.connect()
mrf.process_order(order)
_assert_order_updated(order)
if __name__ == '__main__':
unittest.main()