-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsams_surf_shop.py
More file actions
44 lines (33 loc) · 1.54 KB
/
Copy pathsams_surf_shop.py
File metadata and controls
44 lines (33 loc) · 1.54 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
import unittest
import datetime
import surfshop
class SurfShopTest(unittest.TestCase):
@classmethod
def setUp(cls) -> None:
cls.cart = surfshop.ShoppingCart()
def test_add_single_surfboard(self):
result = self.cart.add_surfboards(1)
self.assertEqual(result, 'Successfully added 1 surfboard to cart!')
# def test_add_two_surfboards(self):
# self.assertEqual(self.cart.add_surfboards(2), 'Successfully added 2 surfboards to cart!')
def test_add_multiple_surfboards(self):
for quantity in (2, 3, 4):
with self.subTest(quantity=quantity):
cart = surfshop.ShoppingCart()
result = cart.add_surfboards(quantity)
self.assertEqual(result, f'Successfully added {quantity} surfboards to cart!')
@unittest.skip('Handled by boundary tests')
def test_adding_too_many_surfboards(self):
self.cart.add_surfboards(5)
@unittest.expectedFailure # when stated pass and no return for function gave expected error
def test_apply_locals_discount(self):
self.assertTrue(self.cart.locals_discount)
def test_apply_locals_discount_sets_flag(self):
self.cart.apply_locals_discount()
self.assertTrue(self.cart.locals_discount)
def test_checkout_date_in_past_raises_error(self):
yesterday = datetime.datetime.today() - datetime.timedelta(days=1)
with self.assertRaises(surfshop.CheckoutDateError):
self.cart.set_checkout_date(yesterday)
if __name__ == '__main__':
unittest.main(verbosity=2)