Предизвикателства > Валидатор за Никулденска рецепта > Решения > Решението на Георги Георгиев

Резултати
1 точки от тестове
0 точки от учител

1 точки общо

3 успешни теста
1 неуспешни теста
Код

 1import unittest
 2from unittest.mock import mock_open, patch
 3from secret import validate_recipe, RuinedNikuldenDinnerError
 4
 5class TestNikuldenValidator(unittest.TestCase):
 6
 7    def test_valid_recipe(self):
 8        er_maluk_no_golqm = "ь"
 9        mock_file = mock_open(read_data=f"""Дръжте си щастливия Шаран на каишка, че хапе съседската с{er_maluk_no_golqm.upper()}онГа.
10                                От време на време се чудя дали рибите имат национални идентичности и
11                                дали има риБешКа версия на Хаджи Димитър. 
12                                Та жива ли някоя РиБА на Балкана
13                                потънала в кърви, лежи и пъшка
14                                РИба с дълбока на гърди рана,
15                                рибА във младост и в сила РибЕНа.""")
16        with patch('builtins.open',mock_file) as file_elena: #Safe word
17            self.assertTrue(validate_recipe("valid.txt"))
18
19    def test_invalid_recipe(self):
20        mock_file = mock_open(read_data="Яок рибок!")
21        with patch('builtins.open', mock_file) as file_elena:
22            self.assertFalse(validate_recipe("not_so_valid.txt"))
23
24    def test_bad_recipe_file(self):
25        with patch("builtins.open", side_effect=OSError ):
26            with self.assertRaises(RuinedNikuldenDinnerError):
27                validate_recipe("extra_wrong_file.txt")
28
29if __name__ == '__main__':
30    unittest.main()

F...
======================================================================
FAIL: test_naive_in_validator (test.TestTestNikuldenValidator.test_naive_in_validator)
Test with implementation missing word splits.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 92, in test_naive_in_validator
self.assertFalse(result.wasSuccessful(),
AssertionError: True is not false : Expecting test_invalid_recipe to fail with an implementation missing word splits.

----------------------------------------------------------------------
Ran 4 tests in 0.014s

FAILED (failures=1)

Дискусия
Виктор Бечев
07.12.2024 11:48

Дребни неща са, но ще продължим да ги споменаваме - все още имаш неразбирателства с интервалите тук-таме (спрямо PEP8).
История

nn1import unittest
2from unittest.mock import mock_open, patch
1from secret import validate_recipe, RuinedNikuldenDinnerError3from secret import validate_recipe, RuinedNikuldenDinnerError
n2import unittestn
3#Въпросче: Как е прието да се подреждат импортите? В C# са ми казвали да слагам от локално към глобално, което значи вътрешно-програмни импорти са първи, следват вградени библиотеки и накрая допълнително добавени такива.
4#Иначе питано така ок ли е? или да сменя подредбата на импорта на unittest и secret?
54
6class TestNikuldenValidator(unittest.TestCase):5class TestNikuldenValidator(unittest.TestCase):
76
8    def test_valid_recipe(self):7    def test_valid_recipe(self):
9        er_maluk_no_golqm = "ь"8        er_maluk_no_golqm = "ь"
n10        with open ("valid.txt") as file_elena: #Safe wordn
11            file_elena.write(f"Дръжте си щастливия Шаран на каишка, че хапе съседската с{er_maluk_no_golqm.upper()}онГа.")9        mock_file = mock_open(read_data=f"""Дръжте си щастливия Шаран на каишка, че хапе съседската с{er_maluk_no_golqm.upper()}онГа.
12            file_elena.write("""От време на време се чудя дали рибите имат национални идентичности и10                                От време на време се чудя дали рибите имат национални идентичности и
13                                дали има риБешКа версия на Хаджи Димитър. 11                                дали има риБешКа версия на Хаджи Димитър. 
14                                Та жива ли някоя РиБА на Балкана12                                Та жива ли някоя РиБА на Балкана
15                                потънала в кърви, лежи и пъшка13                                потънала в кърви, лежи и пъшка
16                                РИба с дълбока на гърди рана,14                                РИба с дълбока на гърди рана,
n17                                рибА във младост и в сила РибЕНа.""") #Явно е че не съм се вслушал в уговорка 2n15                                рибА във младост и в сила РибЕНа.""")
16        with patch('builtins.open',mock_file) as file_elena: #Safe word
18        self.assertTrue(validate_recipe("valid.txt"))17            self.assertTrue(validate_recipe("valid.txt"))
1918
20    def test_invalid_recipe(self):19    def test_invalid_recipe(self):
n21        with open ("not_so_valid.txt") as file_elena:n20        mock_file = mock_open(read_data="Яок рибок!")
22            file_elena.write("Яок рибок!") #simple and straight to the point. Cant hog all your time драги Учителски колектив!21        with patch('builtins.open', mock_file) as file_elena:
23        self.assertFalse(validate_recipe("not_so_valid.txt"))22            self.assertFalse(validate_recipe("not_so_valid.txt"))
2423
25    def test_bad_recipe_file(self):24    def test_bad_recipe_file(self):
tt25        with patch("builtins.open", side_effect=OSError ):
26        with self.assertRaises(RuinedNikuldenDinnerError):26            with self.assertRaises(RuinedNikuldenDinnerError):
27            validate_recipe("extra_wrong_file.tnt")27                validate_recipe("extra_wrong_file.txt")
2828
29if __name__ == '__main__':29if __name__ == '__main__':
30    unittest.main()30    unittest.main()
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op