Домашни > Bang the ranga! > Решения > Решението на Ариф Мехмедали

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

3 точки общо

10 успешни теста
0 неуспешни теста
Код

 1from bangaranga import does_the_banga_rang, TheBangaDoesNotRangError
 2import unittest
 3from unittest.mock import patch, mock_open
 4
 5class TestBangaranga(unittest.TestCase):
 6
 7    def test_bangaranga_returns_0(self):
 8        with patch("builtins.open", mock_open(read_data="pls dont fail")):
 9            self.assertEqual(does_the_banga_rang("test.txt"), 0)
10    
11    def test_bangaranga_empty_file(self):
12        with patch("builtins.open", mock_open(read_data="")):
13            self.assertEqual(does_the_banga_rang("test.txt"), 0)
14
15    def test_bangaranga_digits(self):
16        with patch("builtins.open", mock_open(read_data="bang a123 ranga")):
17            self.assertEqual(does_the_banga_rang("test.txt"), 0)
18    
19    def test_bangaranga_underscore(self):
20        with patch("builtins.open", mock_open(read_data="banga_ranga")):
21            self.assertEqual(does_the_banga_rang("test.txt"), 0)
22
23    def test_bangaranga_punctuation(self):
24        with patch("builtins.open", mock_open(read_data="bang!?a.rang,a")):
25            self.assertEqual(does_the_banga_rang("test.txt"), 4)
26
27    def test_bangaranga_correct_order(self):
28        with patch("builtins.open", mock_open(read_data="rang a the banga")):
29            self.assertEqual(does_the_banga_rang("test.txt"), 0)
30
31    def test_bangaranga_OSError(self):
32        with patch("builtins.open", side_effect=OSError):
33            with self.assertRaises(TheBangaDoesNotRangError):
34                does_the_banga_rang("test.txt")
35
36    def test_bangaranga_IOError(self):
37        with patch("builtins.open", side_effect=IOError):
38            with self.assertRaises(TheBangaDoesNotRangError):
39                does_the_banga_rang("test.txt")
40
41    def test_bangaranga_simple_case(self):
42        with patch("builtins.open", mock_open(read_data="banga ranga")):
43            self.assertEqual(does_the_banga_rang("test.txt"), 2)
44
45    def test_bangaranga_noisy_input(self):
46        with patch("builtins.open", mock_open(read_data="? the banga ! the ranga ga!")):
47            self.assertEqual(does_the_banga_rang("test.txt"), 2)
48
49    def test_bangaranga_case_insensitive(self):
50        with patch("builtins.open", mock_open(read_data="BAngar AnGa")):
51            self.assertEqual(does_the_banga_rang("test.txt"), 2)
52
53    def test_bangaranga_minimum_count(self):
54        with patch("builtins.open", mock_open(read_data="bang a banga ranga bangaranga")):
55            self.assertEqual(does_the_banga_rang("test.txt"), 1)
56
57
58if __name__ == "__main__":
59    unittest.main()

..........
----------------------------------------------------------------------
Ran 10 tests in 0.281s

OK

Дискусия
Виктор Бечев
31.05.2026 18:07

Като изключим подредбата на импортите - нямам забележки.
История
Това решение има само една версия.