1import unittest
2from unittest.mock import mock_open, patch
3from itertools import product
4from secret import validate_recipe, RuinedNikuldenDinnerError
5
6
7def permute(word):
8 """Permute all case variations of a word."""
9 letter_options = [(char.lower(), char.upper()) for char in word]
10 permutations = list(map(''.join, product(*letter_options)))
11 return permutations
12
13
14class TestNikuldenValidator(unittest.TestCase):
15 def setUp(self):
16 """Set up valid and invalid mock recipes."""
17 keywords = ['риба', 'рибена', 'шаран', 'сьонга']
18
19 self.mock_valid_recipes = []
20 for keyword in keywords:
21 self.mock_valid_recipes.extend(permute(keyword))
22
23 self.mock_invalid_recipes = list(
24 map(lambda x: 'a' + x + 'a', self.mock_valid_recipes)
25 )
26
27 def test_valid_recipe(self):
28 for mock_recipe in self.mock_valid_recipes:
29 with patch("builtins.open", mock_open(read_data=mock_recipe)):
30 self.assertTrue(validate_recipe("hacknah_vi.txt"))
31
32 def test_invalid_recipe(self):
33 mock_invalid_recipe = (
34 """Всеки ми казва – спри да я чакаш
35 Ако обича те, ще бъде тук
36 Месеци минаха, даже година
37 Може би има си друг
38 Всеки ми казва – не настоявай
39 И да умираш, дишай напук
40 Живея и дишам с тази надежда
41 Някога пак да си тук"""
42 )
43
44 self.mock_invalid_recipes.append(mock_invalid_recipe) #нямаше как
45
46 for mock_recipe in self.mock_invalid_recipes:
47 with patch("builtins.open", mock_open(read_data=mock_recipe)):
48 self.assertFalse(validate_recipe("hacknah_vi.txt"))
49
50 def test_bad_recipe_file(self):
51 with patch("builtins.open", side_effect=OSError("File error!")):
52 with self.assertRaises(RuinedNikuldenDinnerError):
53 validate_recipe("pak_vi_hacknah.txt")
54
55 with patch("builtins.open", side_effect=IOError("File error!")):
56 with self.assertRaises(RuinedNikuldenDinnerError):
57 validate_recipe("pak_vi_hacknah.txt")
58
59
60if __name__ == "__main__":
61 unittest.main()
Timed out.
Виктор Бечев
07.12.2024 13:18Пуснах ти тестовете ръчно, защото имаме сложен timeout за да не ни хаквате. Минават всичките.
|
f | 1 | import unittest | f | 1 | import unittest |
2 | from unittest.mock import mock_open, patch | 2 | from unittest.mock import mock_open, patch | ||
3 | from itertools import product | 3 | from itertools import product | ||
4 | from secret import validate_recipe, RuinedNikuldenDinnerError | 4 | from secret import validate_recipe, RuinedNikuldenDinnerError | ||
5 | 5 | ||||
n | n | 6 | |||
6 | def permute(word): | 7 | def permute(word): | ||
7 | """Permute all case variations of a word.""" | 8 | """Permute all case variations of a word.""" | ||
n | 8 | n | |||
9 | letter_options = [(char.lower(), char.upper()) for char in word] | 9 | letter_options = [(char.lower(), char.upper()) for char in word] | ||
10 | permutations = list(map(''.join, product(*letter_options))) | 10 | permutations = list(map(''.join, product(*letter_options))) | ||
11 | return permutations | 11 | return permutations | ||
12 | 12 | ||||
n | n | 13 | |||
13 | class TestNikuldenValidator(unittest.TestCase): | 14 | class TestNikuldenValidator(unittest.TestCase): | ||
n | 14 | n | |||
15 | def setUp(self): | 15 | def setUp(self): | ||
n | n | 16 | """Set up valid and invalid mock recipes.""" | ||
16 | keywords = ['риба', 'рибена', 'шаран', 'сьонга'] | 17 | keywords = ['риба', 'рибена', 'шаран', 'сьонга'] | ||
n | 17 | n | 18 | ||
18 | self.mock_valid_recipes = [] | 19 | self.mock_valid_recipes = [] | ||
19 | for keyword in keywords: | 20 | for keyword in keywords: | ||
n | 20 | self.mock_valid_recipes.extend(permute(keyword)) | n | 21 | self.mock_valid_recipes.extend(permute(keyword)) |
21 | |||||
22 | self.mock_invalid_recipes = list(map(lambda x: 'a' + x + 'a', self.mock_valid_recipes)) | ||||
23 | 22 | ||||
n | n | 23 | self.mock_invalid_recipes = list( | ||
24 | map(lambda x: 'a' + x + 'a', self.mock_valid_recipes) | ||||
25 | ) | ||||
24 | 26 | ||||
25 | def test_valid_recipe(self): | 27 | def test_valid_recipe(self): | ||
26 | for mock_recipe in self.mock_valid_recipes: | 28 | for mock_recipe in self.mock_valid_recipes: | ||
27 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | 29 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | ||
28 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | 30 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | ||
29 | 31 | ||||
30 | def test_invalid_recipe(self): | 32 | def test_invalid_recipe(self): | ||
31 | mock_invalid_recipe = ( | 33 | mock_invalid_recipe = ( | ||
32 | """Всеки ми казва – спри да я чакаш | 34 | """Всеки ми казва – спри да я чакаш | ||
33 | Ако обича те, ще бъде тук | 35 | Ако обича те, ще бъде тук | ||
34 | Месеци минаха, даже година | 36 | Месеци минаха, даже година | ||
35 | Може би има си друг | 37 | Може би има си друг | ||
36 | Всеки ми казва – не настоявай | 38 | Всеки ми казва – не настоявай | ||
37 | И да умираш, дишай напук | 39 | И да умираш, дишай напук | ||
38 | Живея и дишам с тази надежда | 40 | Живея и дишам с тази надежда | ||
39 | Някога пак да си тук""" | 41 | Някога пак да си тук""" | ||
40 | ) | 42 | ) | ||
n | 41 | n | 43 | ||
42 | self.mock_invalid_recipes.append(mock_invalid_recipe) #нямаше как | 44 | self.mock_invalid_recipes.append(mock_invalid_recipe) #нямаше как | ||
n | n | 45 | |||
43 | for mock_recipe in self.mock_invalid_recipes: | 46 | for mock_recipe in self.mock_invalid_recipes: | ||
44 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | 47 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | ||
45 | self.assertFalse(validate_recipe("hacknah_vi.txt")) | 48 | self.assertFalse(validate_recipe("hacknah_vi.txt")) | ||
n | 46 | n | 49 | ||
47 | |||||
48 | def test_bad_recipe_file(self): | 50 | def test_bad_recipe_file(self): | ||
n | 49 | with patch("builtins.open", side_effect=OSError("Тук ви шаня, пазя си шарана!")): | n | 51 | with patch("builtins.open", side_effect=OSError("File error!")): |
50 | with self.assertRaises(RuinedNikuldenDinnerError): | 52 | with self.assertRaises(RuinedNikuldenDinnerError): | ||
51 | validate_recipe("pak_vi_hacknah.txt") | 53 | validate_recipe("pak_vi_hacknah.txt") | ||
t | 52 | t | 54 | ||
53 | with patch("builtins.open", side_effect=IOError("Тук ви шаня, пазя си шарана!")): | 55 | with patch("builtins.open", side_effect=IOError("File error!")): | ||
54 | with self.assertRaises(RuinedNikuldenDinnerError): | 56 | with self.assertRaises(RuinedNikuldenDinnerError): | ||
55 | validate_recipe("pak_vi_hacknah.txt") | 57 | validate_recipe("pak_vi_hacknah.txt") | ||
56 | 58 | ||||
57 | 59 | ||||
58 | if __name__ == "__main__": | 60 | if __name__ == "__main__": | ||
59 | unittest.main() | 61 | unittest.main() |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
f | 1 | import unittest | f | 1 | import unittest |
2 | from unittest.mock import mock_open, patch | 2 | from unittest.mock import mock_open, patch | ||
3 | from itertools import product | 3 | from itertools import product | ||
4 | from secret import validate_recipe, RuinedNikuldenDinnerError | 4 | from secret import validate_recipe, RuinedNikuldenDinnerError | ||
5 | 5 | ||||
6 | def permute(word): | 6 | def permute(word): | ||
7 | """Permute all case variations of a word.""" | 7 | """Permute all case variations of a word.""" | ||
8 | 8 | ||||
9 | letter_options = [(char.lower(), char.upper()) for char in word] | 9 | letter_options = [(char.lower(), char.upper()) for char in word] | ||
10 | permutations = list(map(''.join, product(*letter_options))) | 10 | permutations = list(map(''.join, product(*letter_options))) | ||
11 | return permutations | 11 | return permutations | ||
12 | 12 | ||||
13 | class TestNikuldenValidator(unittest.TestCase): | 13 | class TestNikuldenValidator(unittest.TestCase): | ||
n | n | 14 | |||
15 | def setUp(self): | ||||
16 | keywords = ['риба', 'рибена', 'шаран', 'сьонга'] | ||||
17 | |||||
18 | self.mock_valid_recipes = [] | ||||
19 | for keyword in keywords: | ||||
20 | self.mock_valid_recipes.extend(permute(keyword)) | ||||
21 | |||||
22 | self.mock_invalid_recipes = list(map(lambda x: 'a' + x + 'a', self.mock_valid_recipes)) | ||||
23 | |||||
24 | |||||
14 | def test_valid_recipe(self): | 25 | def test_valid_recipe(self): | ||
n | 15 | keywords = ['риба', 'рибена', 'шаран', 'сьонга'] | n | ||
16 | mock_valid_recipes = [] | ||||
17 | for keyword in keywords: | ||||
18 | mock_valid_recipes.extend(permute(keyword)) | ||||
19 | |||||
20 | for mock_recipe in mock_valid_recipes: | 26 | for mock_recipe in self.mock_valid_recipes: | ||
21 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | 27 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | ||
22 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | 28 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | ||
23 | 29 | ||||
24 | def test_invalid_recipe(self): | 30 | def test_invalid_recipe(self): | ||
25 | mock_invalid_recipe = ( | 31 | mock_invalid_recipe = ( | ||
26 | """Всеки ми казва – спри да я чакаш | 32 | """Всеки ми казва – спри да я чакаш | ||
27 | Ако обича те, ще бъде тук | 33 | Ако обича те, ще бъде тук | ||
28 | Месеци минаха, даже година | 34 | Месеци минаха, даже година | ||
29 | Може би има си друг | 35 | Може би има си друг | ||
30 | Всеки ми казва – не настоявай | 36 | Всеки ми казва – не настоявай | ||
31 | И да умираш, дишай напук | 37 | И да умираш, дишай напук | ||
32 | Живея и дишам с тази надежда | 38 | Живея и дишам с тази надежда | ||
33 | Някога пак да си тук""" | 39 | Някога пак да си тук""" | ||
34 | ) | 40 | ) | ||
n | 35 | n | 41 | ||
42 | self.mock_invalid_recipes.append(mock_invalid_recipe) #нямаше как | ||||
43 | for mock_recipe in self.mock_invalid_recipes: | ||||
36 | with patch("builtins.open", mock_open(read_data=mock_invalid_recipe)): | 44 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | ||
37 | self.assertFalse(validate_recipe("pak_hacknah_vi.txt")) | 45 | self.assertFalse(validate_recipe("hacknah_vi.txt")) | ||
38 | 46 | ||||
47 | |||||
39 | def test_bad_recipe_file(self): | 48 | def test_bad_recipe_file(self): | ||
40 | with patch("builtins.open", side_effect=OSError("Тук ви шаня, пазя си шарана!")): | 49 | with patch("builtins.open", side_effect=OSError("Тук ви шаня, пазя си шарана!")): | ||
41 | with self.assertRaises(RuinedNikuldenDinnerError): | 50 | with self.assertRaises(RuinedNikuldenDinnerError): | ||
n | 42 | validate_recipe("pak_pak_vi_hacknah.txt") | n | 51 | validate_recipe("pak_vi_hacknah.txt") |
43 | 52 | ||||
44 | with patch("builtins.open", side_effect=IOError("Тук ви шаня, пазя си шарана!")): | 53 | with patch("builtins.open", side_effect=IOError("Тук ви шаня, пазя си шарана!")): | ||
45 | with self.assertRaises(RuinedNikuldenDinnerError): | 54 | with self.assertRaises(RuinedNikuldenDinnerError): | ||
t | 46 | validate_recipe("pak_pak_vi_hacknah.txt") | t | 55 | validate_recipe("pak_vi_hacknah.txt") |
47 | 56 | ||||
48 | 57 | ||||
49 | if __name__ == "__main__": | 58 | if __name__ == "__main__": | ||
50 | unittest.main() | 59 | unittest.main() |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
f | 1 | import unittest | f | 1 | import unittest |
2 | from unittest.mock import mock_open, patch | 2 | from unittest.mock import mock_open, patch | ||
3 | from itertools import product | 3 | from itertools import product | ||
4 | from secret import validate_recipe, RuinedNikuldenDinnerError | 4 | from secret import validate_recipe, RuinedNikuldenDinnerError | ||
5 | 5 | ||||
6 | def permute(word): | 6 | def permute(word): | ||
7 | """Permute all case variations of a word.""" | 7 | """Permute all case variations of a word.""" | ||
8 | 8 | ||||
9 | letter_options = [(char.lower(), char.upper()) for char in word] | 9 | letter_options = [(char.lower(), char.upper()) for char in word] | ||
10 | permutations = list(map(''.join, product(*letter_options))) | 10 | permutations = list(map(''.join, product(*letter_options))) | ||
11 | return permutations | 11 | return permutations | ||
12 | 12 | ||||
13 | class TestNikuldenValidator(unittest.TestCase): | 13 | class TestNikuldenValidator(unittest.TestCase): | ||
14 | def test_valid_recipe(self): | 14 | def test_valid_recipe(self): | ||
t | 15 | # mock_valid_recipes = [ | t | ||
16 | # "За една сьоНГА продадох си душата,", | ||||
17 | # "за РИбеНа глава загубих свободата.", | ||||
18 | # "Сляп в самота в плен на шаран", | ||||
19 | # "да съм риба на света.", | ||||
20 | # ] | ||||
21 | |||||
22 | keywords = ['риба', 'рибена', 'шаран', 'сьонга'] | 15 | keywords = ['риба', 'рибена', 'шаран', 'сьонга'] | ||
23 | mock_valid_recipes = [] | 16 | mock_valid_recipes = [] | ||
24 | for keyword in keywords: | 17 | for keyword in keywords: | ||
25 | mock_valid_recipes.extend(permute(keyword)) | 18 | mock_valid_recipes.extend(permute(keyword)) | ||
26 | 19 | ||||
27 | for mock_recipe in mock_valid_recipes: | 20 | for mock_recipe in mock_valid_recipes: | ||
28 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | 21 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | ||
29 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | 22 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | ||
30 | 23 | ||||
31 | def test_invalid_recipe(self): | 24 | def test_invalid_recipe(self): | ||
32 | mock_invalid_recipe = ( | 25 | mock_invalid_recipe = ( | ||
33 | """Всеки ми казва – спри да я чакаш | 26 | """Всеки ми казва – спри да я чакаш | ||
34 | Ако обича те, ще бъде тук | 27 | Ако обича те, ще бъде тук | ||
35 | Месеци минаха, даже година | 28 | Месеци минаха, даже година | ||
36 | Може би има си друг | 29 | Може би има си друг | ||
37 | Всеки ми казва – не настоявай | 30 | Всеки ми казва – не настоявай | ||
38 | И да умираш, дишай напук | 31 | И да умираш, дишай напук | ||
39 | Живея и дишам с тази надежда | 32 | Живея и дишам с тази надежда | ||
40 | Някога пак да си тук""" | 33 | Някога пак да си тук""" | ||
41 | ) | 34 | ) | ||
42 | 35 | ||||
43 | with patch("builtins.open", mock_open(read_data=mock_invalid_recipe)): | 36 | with patch("builtins.open", mock_open(read_data=mock_invalid_recipe)): | ||
44 | self.assertFalse(validate_recipe("pak_hacknah_vi.txt")) | 37 | self.assertFalse(validate_recipe("pak_hacknah_vi.txt")) | ||
45 | 38 | ||||
46 | def test_bad_recipe_file(self): | 39 | def test_bad_recipe_file(self): | ||
47 | with patch("builtins.open", side_effect=OSError("Тук ви шаня, пазя си шарана!")): | 40 | with patch("builtins.open", side_effect=OSError("Тук ви шаня, пазя си шарана!")): | ||
48 | with self.assertRaises(RuinedNikuldenDinnerError): | 41 | with self.assertRaises(RuinedNikuldenDinnerError): | ||
49 | validate_recipe("pak_pak_vi_hacknah.txt") | 42 | validate_recipe("pak_pak_vi_hacknah.txt") | ||
50 | 43 | ||||
51 | with patch("builtins.open", side_effect=IOError("Тук ви шаня, пазя си шарана!")): | 44 | with patch("builtins.open", side_effect=IOError("Тук ви шаня, пазя си шарана!")): | ||
52 | with self.assertRaises(RuinedNikuldenDinnerError): | 45 | with self.assertRaises(RuinedNikuldenDinnerError): | ||
53 | validate_recipe("pak_pak_vi_hacknah.txt") | 46 | validate_recipe("pak_pak_vi_hacknah.txt") | ||
54 | 47 | ||||
55 | 48 | ||||
56 | if __name__ == "__main__": | 49 | if __name__ == "__main__": | ||
57 | unittest.main() | 50 | unittest.main() |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
f | 1 | import unittest | f | 1 | import unittest |
2 | from unittest.mock import mock_open, patch | 2 | from unittest.mock import mock_open, patch | ||
n | n | 3 | from itertools import product | ||
3 | from secret import validate_recipe, RuinedNikuldenDinnerError | 4 | from secret import validate_recipe, RuinedNikuldenDinnerError | ||
4 | 5 | ||||
n | n | 6 | def permute(word): | ||
7 | """Permute all case variations of a word.""" | ||||
8 | |||||
9 | letter_options = [(char.lower(), char.upper()) for char in word] | ||||
10 | permutations = list(map(''.join, product(*letter_options))) | ||||
11 | return permutations | ||||
5 | 12 | ||||
6 | class TestNikuldenValidator(unittest.TestCase): | 13 | class TestNikuldenValidator(unittest.TestCase): | ||
7 | def test_valid_recipe(self): | 14 | def test_valid_recipe(self): | ||
n | n | 15 | # mock_valid_recipes = [ | ||
16 | # "За една сьоНГА продадох си душата,", | ||||
17 | # "за РИбеНа глава загубих свободата.", | ||||
18 | # "Сляп в самота в плен на шаран", | ||||
19 | # "да съм риба на света.", | ||||
20 | # ] | ||||
21 | |||||
22 | keywords = ['риба', 'рибена', 'шаран', 'сьонга'] | ||||
8 | mock_valid_recipes = [ | 23 | mock_valid_recipes = [] | ||
9 | "За една сьоНГА продадох си душата,", | 24 | for keyword in keywords: | ||
10 | "за РИбеНа глава загубих свободата.", | 25 | mock_valid_recipes.extend(permute(keyword)) | ||
11 | "Сляп в самота в плен на шаран", | ||||
12 | "да съм риба на света.", | ||||
13 | ] | ||||
14 | 26 | ||||
15 | for mock_recipe in mock_valid_recipes: | 27 | for mock_recipe in mock_valid_recipes: | ||
16 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | 28 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | ||
17 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | 29 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | ||
18 | 30 | ||||
19 | def test_invalid_recipe(self): | 31 | def test_invalid_recipe(self): | ||
20 | mock_invalid_recipe = ( | 32 | mock_invalid_recipe = ( | ||
21 | """Всеки ми казва – спри да я чакаш | 33 | """Всеки ми казва – спри да я чакаш | ||
22 | Ако обича те, ще бъде тук | 34 | Ако обича те, ще бъде тук | ||
23 | Месеци минаха, даже година | 35 | Месеци минаха, даже година | ||
24 | Може би има си друг | 36 | Може би има си друг | ||
25 | Всеки ми казва – не настоявай | 37 | Всеки ми казва – не настоявай | ||
26 | И да умираш, дишай напук | 38 | И да умираш, дишай напук | ||
27 | Живея и дишам с тази надежда | 39 | Живея и дишам с тази надежда | ||
28 | Някога пак да си тук""" | 40 | Някога пак да си тук""" | ||
29 | ) | 41 | ) | ||
30 | 42 | ||||
31 | with patch("builtins.open", mock_open(read_data=mock_invalid_recipe)): | 43 | with patch("builtins.open", mock_open(read_data=mock_invalid_recipe)): | ||
32 | self.assertFalse(validate_recipe("pak_hacknah_vi.txt")) | 44 | self.assertFalse(validate_recipe("pak_hacknah_vi.txt")) | ||
33 | 45 | ||||
34 | def test_bad_recipe_file(self): | 46 | def test_bad_recipe_file(self): | ||
35 | with patch("builtins.open", side_effect=OSError("Тук ви шаня, пазя си шарана!")): | 47 | with patch("builtins.open", side_effect=OSError("Тук ви шаня, пазя си шарана!")): | ||
36 | with self.assertRaises(RuinedNikuldenDinnerError): | 48 | with self.assertRaises(RuinedNikuldenDinnerError): | ||
37 | validate_recipe("pak_pak_vi_hacknah.txt") | 49 | validate_recipe("pak_pak_vi_hacknah.txt") | ||
38 | 50 | ||||
39 | with patch("builtins.open", side_effect=IOError("Тук ви шаня, пазя си шарана!")): | 51 | with patch("builtins.open", side_effect=IOError("Тук ви шаня, пазя си шарана!")): | ||
40 | with self.assertRaises(RuinedNikuldenDinnerError): | 52 | with self.assertRaises(RuinedNikuldenDinnerError): | ||
41 | validate_recipe("pak_pak_vi_hacknah.txt") | 53 | validate_recipe("pak_pak_vi_hacknah.txt") | ||
42 | 54 | ||||
t | t | 55 | |||
43 | if __name__ == "__main__": | 56 | if __name__ == "__main__": | ||
44 | unittest.main() | 57 | unittest.main() |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
f | 1 | import unittest | f | 1 | import unittest |
2 | from unittest.mock import mock_open, patch | 2 | from unittest.mock import mock_open, patch | ||
3 | from secret import validate_recipe, RuinedNikuldenDinnerError | 3 | from secret import validate_recipe, RuinedNikuldenDinnerError | ||
4 | 4 | ||||
5 | 5 | ||||
6 | class TestNikuldenValidator(unittest.TestCase): | 6 | class TestNikuldenValidator(unittest.TestCase): | ||
7 | def test_valid_recipe(self): | 7 | def test_valid_recipe(self): | ||
8 | mock_valid_recipes = [ | 8 | mock_valid_recipes = [ | ||
9 | "За една сьоНГА продадох си душата,", | 9 | "За една сьоНГА продадох си душата,", | ||
10 | "за РИбеНа глава загубих свободата.", | 10 | "за РИбеНа глава загубих свободата.", | ||
11 | "Сляп в самота в плен на шаран", | 11 | "Сляп в самота в плен на шаран", | ||
12 | "да съм риба на света.", | 12 | "да съм риба на света.", | ||
13 | ] | 13 | ] | ||
14 | 14 | ||||
15 | for mock_recipe in mock_valid_recipes: | 15 | for mock_recipe in mock_valid_recipes: | ||
16 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | 16 | with patch("builtins.open", mock_open(read_data=mock_recipe)): | ||
17 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | 17 | self.assertTrue(validate_recipe("hacknah_vi.txt")) | ||
18 | 18 | ||||
19 | def test_invalid_recipe(self): | 19 | def test_invalid_recipe(self): | ||
20 | mock_invalid_recipe = ( | 20 | mock_invalid_recipe = ( | ||
21 | """Всеки ми казва – спри да я чакаш | 21 | """Всеки ми казва – спри да я чакаш | ||
22 | Ако обича те, ще бъде тук | 22 | Ако обича те, ще бъде тук | ||
23 | Месеци минаха, даже година | 23 | Месеци минаха, даже година | ||
24 | Може би има си друг | 24 | Може би има си друг | ||
25 | Всеки ми казва – не настоявай | 25 | Всеки ми казва – не настоявай | ||
26 | И да умираш, дишай напук | 26 | И да умираш, дишай напук | ||
27 | Живея и дишам с тази надежда | 27 | Живея и дишам с тази надежда | ||
28 | Някога пак да си тук""" | 28 | Някога пак да си тук""" | ||
29 | ) | 29 | ) | ||
30 | 30 | ||||
31 | with patch("builtins.open", mock_open(read_data=mock_invalid_recipe)): | 31 | with patch("builtins.open", mock_open(read_data=mock_invalid_recipe)): | ||
32 | self.assertFalse(validate_recipe("pak_hacknah_vi.txt")) | 32 | self.assertFalse(validate_recipe("pak_hacknah_vi.txt")) | ||
33 | 33 | ||||
34 | def test_bad_recipe_file(self): | 34 | def test_bad_recipe_file(self): | ||
35 | with patch("builtins.open", side_effect=OSError("Тук ви шаня, пазя си шарана!")): | 35 | with patch("builtins.open", side_effect=OSError("Тук ви шаня, пазя си шарана!")): | ||
36 | with self.assertRaises(RuinedNikuldenDinnerError): | 36 | with self.assertRaises(RuinedNikuldenDinnerError): | ||
37 | validate_recipe("pak_pak_vi_hacknah.txt") | 37 | validate_recipe("pak_pak_vi_hacknah.txt") | ||
t | t | 38 | |||
39 | with patch("builtins.open", side_effect=IOError("Тук ви шаня, пазя си шарана!")): | ||||
40 | with self.assertRaises(RuinedNikuldenDinnerError): | ||||
41 | validate_recipe("pak_pak_vi_hacknah.txt") | ||||
38 | 42 | ||||
39 | if __name__ == "__main__": | 43 | if __name__ == "__main__": | ||
40 | unittest.main() | 44 | unittest.main() |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
07.12.2024 13:16