1import unittest
2
3import solution
4
5
6class TestSanity(unittest.TestCase):
7 """Check if all data is present."""
8
9 def test_lyutenitsa_data(self):
10 names = [
11 "memnick",
12 ]
13 unimported = [name for name in names if name not in dir(solution)]
14 self.assertEqual(
15 unimported, [], "\n\nЕлементите по-горе липсват (проверете си имената)!"
16 )
17
18
19if __name__ == "__main__":
20 unittest.main()
1import unittest
2from importlib import reload
3
4import solution
5
6
7# Pre-define functions to decorate
8def бай_венци():
9 return "Емил, айде да играем шах!"
10
11
12def божана():
13 return "Почекаин, ти си луд!"
14
15
16def емил():
17 return "Бай Венци, кажи ми за рисунката."
18
19
20def лазар():
21 return "Божана, може би ще те любя."
22
23
24def митака():
25 return "Божана, на този етап не съм сигурен дали искам да те любя."
26
27
28def на_жанчето_майка_ѝ():
29 return "Лазар, едни мекички съм направила да хапнеш."
30
31
32def почекаин():
33 return "Божана, ще те любя."
34
35
36class TestMemnick(unittest.TestCase):
37 """Test that all the neccessary preparations for the occasion are in place."""
38
39 def setUp(self):
40 global solution
41 solution = reload(solution)
42
43 def test_memnick_memorizes(self):
44 solution.memnick()(бай_венци)()
45 solution.memnick()(божана)()
46 solution.memnick()(емил)()
47 solution.memnick()(лазар)()
48 solution.memnick()(митака)()
49 solution.memnick()(на_жанчето_майка_ѝ)()
50 solution.memnick()(почекаин)()
51 self.assertEqual(
52 [
53 "С гласа на Лазар: Божана, може би ще те любя.",
54 "С гласа на Митака: Божана, на този етап не съм сигурен дали искам да те любя.",
55 "С гласа на Почекаин: Божана, ще те любя.",
56 "С гласа на Бай Венци: Емил, айде да играем шах!",
57 ],
58 solution.memnick(божана, емил),
59 )
60 self.assertEqual(
61 [],
62 solution.memnick(митака),
63 )
64 self.assertEqual(
65 ["С гласа на Божана: Почекаин, ти си луд!"],
66 solution.memnick(почекаин),
67 )
68
69 def test_memnick_does_not_memorize_repetitions(self):
70 solution.memnick()(бай_венци)()
71 solution.memnick()(бай_венци)()
72 solution.memnick()(бай_венци)()
73 solution.memnick()(бай_венци)()
74 solution.memnick()(бай_венци)()
75 solution.memnick()(бай_венци)()
76 self.assertEqual(
77 ["С гласа на Бай Венци: Емил, айде да играем шах!"],
78 solution.memnick(емил),
79 )
80
81 def test_memnick_preserves_result(self):
82 self.assertEqual(божана(), solution.memnick()(божана)())
83
84 def test_memnick_splits_properly(self):
85 solution.memnick()(бай_венци)()
86 solution.memnick()(емил)()
87 solution.memnick()(лазар)()
88 solution.memnick()(на_жанчето_майка_ѝ)()
89 self.assertEqual(
90 ["С гласа на Емил: Бай Венци, кажи ми за рисунката."],
91 solution.memnick(бай_венци),
92 )
93 self.assertEqual(
94 ["С гласа на Бай Венци: Емил, айде да играем шах!"],
95 solution.memnick(емил),
96 )
97 self.assertEqual(
98 [],
99 solution.memnick(на_жанчето_майка_ѝ),
100 )
101
102 def test_memnick_decorates_variable_functions(self):
103 def граматиков(фото_капан_1, фото_капан_2, *птици, утрепан_от_мамника=False):
104 if not утрепан_от_мамника:
105 return f"Жители на Вракола, на {фото_капан_1} и {фото_капан_2} са заснети {птици}."
106 return "Жители на Вракола, ибаси."
107
108 solution.memnick()(граматиков)("Капан 1", "Капан 2", "кос", "друг кос", утрепан_от_мамника=True)
109
110
111if __name__ == "__main__":
112 unittest.main()
Виктор Бечев
15.03.2026 14:54Оправихме един от тестовете и ви оставихме обратна връзка. Вече не би следвало точките, които имате, да се променят.
|
|
|