/
test.py
104 lines (83 loc) · 4 KB
/
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import unittest
from garbage import Garbage
from paper_garbage import PaperGarbage
from plastic_garbage import PlasticGarbage
from dustbin import Dustbin
from dustbin_content_error import DustbinContentError
class Tester(unittest.TestCase):
def test_instantiating_garbage(self):
garbage_name = "Rotten food from the fridge"
garbage = Garbage(garbage_name)
self.assertEqual(garbage.name, garbage_name)
def test_instantiating_plastic_garbage(self):
garbage_name = "Empty coke bottle"
plastic_garbage = PlasticGarbage(garbage_name, False)
self.assertEqual(plastic_garbage.name, garbage_name)
self.assertEqual(plastic_garbage.is_clean, False)
def test_instantiating_paper_garbage(self):
garbage_name = "An empty milk carton"
paper_garbage = PaperGarbage(garbage_name, False)
self.assertEqual(paper_garbage.name, garbage_name)
self.assertEqual(paper_garbage.is_squeezed, False)
def test_squeeze_on_paper_garbage(self):
paper_garbage = PaperGarbage("Paper garbage", False)
paper_garbage.squeeze()
self.assertEqual(paper_garbage.is_squeezed, True)
def test_clean_on_plastic_garbage(self):
plastic_garbage = PlasticGarbage("Plastic garbage", False)
plastic_garbage.clean()
self.assertEqual(plastic_garbage.is_clean, True)
def test_dustbin_out_paper_garbage(self):
paper_garbage = PaperGarbage("Paper garbage", True)
dustbin = Dustbin("red")
dustbin.throw_out_garbage(paper_garbage)
self.assertEqual(len(dustbin.paper_content), 1)
self.assertEqual(len(dustbin.plastic_content), 0)
self.assertEqual(len(dustbin.house_waste_content), 0)
def test_dustbin_out_plastic_garbage(self):
plastic_garbage = PlasticGarbage("Plastic garbage", True)
dustbin = Dustbin("red")
dustbin.throw_out_garbage(plastic_garbage)
self.assertEqual(len(dustbin.paper_content), 0)
self.assertEqual(len(dustbin.plastic_content), 1)
self.assertEqual(len(dustbin.house_waste_content), 0)
def test_dustbin_out_house_waste_garbage(self):
garbage = Garbage("House waste garbage")
dustbin = Dustbin("red")
dustbin.throw_out_garbage(garbage)
self.assertEqual(len(dustbin.paper_content), 0)
self.assertEqual(len(dustbin.plastic_content), 0)
self.assertEqual(len(dustbin.house_waste_content), 1)
def test_dustbin_out_unsqueezed_paper_garbage(self):
paper_garbage = PaperGarbage("Paper garbage", False)
dustbin = Dustbin("red")
self.assertRaises(DustbinContentError, lambda: dustbin.throw_out_garbage(paper_garbage))
def test_dustbin_out_uncleaned_plastic_garbage(self):
plastic_garbage = PlasticGarbage("Plastic garbage", False)
dustbin = Dustbin("red")
self.assertRaises(DustbinContentError, lambda: dustbin.throw_out_garbage(plastic_garbage))
def test_dustbin_out_something_which_is_not_a_garbage(self):
my_string = "This is NOT a garbage, right???"
dustbin = Dustbin("red")
self.assertRaises(DustbinContentError, lambda: dustbin.throw_out_garbage(my_string))
def test_dustbin_out_something_which_is_not_a_garbage(self):
my_string = "This is NOT a garbage, right???"
dustbin = Dustbin("red")
self.assertRaises(DustbinContentError, lambda: dustbin.throw_out_garbage(my_string))
def test_empty_contents_on_dustbin(self):
garbage_list = [
PlasticGarbage("Plastic garbage", True),
PaperGarbage("Paper garbage", True),
Garbage("House waste garbage")
]
dustbin = Dustbin("red")
for garbage in garbage_list:
dustbin.throw_out_garbage(garbage)
dustbin.empty_contents()
self.assertEqual(len(dustbin.paper_content), 0)
self.assertEqual(len(dustbin.plastic_content), 0)
self.assertEqual(len(dustbin.house_waste_content), 0)
def main():
unittest.main()
if __name__ == '__main__':
main()