Домашни > Bang the ranga! > Решения > Решението на Георги Иванов

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

3 точки общо

10 успешни теста
0 неуспешни теста
Код
Скрий всички коментари

 1import unittest
 2from unittest.mock import patch, mock_open
 3
 4from bangaranga import does_the_banga_rang, TheBangaDoesNotRangError
 5
 6class TestBangaRang(unittest.TestCase):
 7
 8    def setUp(self):
 9        self.filename = "any.txt"
10
11    def tearDown(self):
12        del self.filename
13
14    @patch("builtins.open", mock_open(read_data="The banga is doing some ranga!"))
15    def test_two_words_forming_bangaranga(self):
16        self.assertEqual(2, does_the_banga_rang(self.filename))
17
18    @patch("builtins.open", mock_open(read_data="bang a small ranga"))
19    def test_three_words_forming_bangaranga(self):
20        self.assertEqual(3, does_the_banga_rang(self.filename))
21
22    @patch("builtins.open", mock_open(read_data="bang a banga ranga bangaranga"))
23    def test_single_word_bangaranga_is_minimum(self):
24        self.assertEqual(1, does_the_banga_rang(self.filename))
25
26    @patch("builtins.open", mock_open(read_data="BANGA RANGA"))
27    def test_case_insensitive(self):
28        self.assertEqual(2, does_the_banga_rang(self.filename))
29
30    @patch("builtins.open", mock_open(read_data="ranga is banga"))
31    def test_wrong_order_returns_zero(self):
32        self.assertEqual(0, does_the_banga_rang(self.filename))
33
34    @patch("builtins.open", mock_open(read_data="Does the banga rang?"))
35    def test_no_matching_words_returns_zero(self):
36        self.assertEqual(0, does_the_banga_rang(self.filename))
37
38    @patch("builtins.open", mock_open(read_data=""))
39    def test_empty_file_returns_zero(self):
40        self.assertEqual(0, does_the_banga_rang(self.filename))
41
42    @patch("builtins.open", mock_open(read_data="just banga here"))
43    def test_partial_match_only_returns_zero(self):
44        self.assertEqual(0, does_the_banga_rang(self.filename))
45
46    @patch("builtins.open", mock_open(read_data="bangarangaXYZ"))
47    def test_words_must_be_whole_words(self):
48        self.assertEqual(0, does_the_banga_rang(self.filename))
49
50    @patch("builtins.open", mock_open(read_data="banga ranga bangaranga"))
51    def test_minimum_word_count_is_returned(self):
52        self.assertEqual(1, does_the_banga_rang(self.filename))
53
54    @patch("builtins.open", side_effect=OSError)
55    def test_os_error_raises_custom_exception(self, _):
56        self.assertRaises(TheBangaDoesNotRangError, does_the_banga_rang, self.filename)
57
58    @patch("builtins.open", side_effect=IOError)
59    def test_io_error_raises_custom_exception(self, _):
60        self.assertRaises(TheBangaDoesNotRangError, does_the_banga_rang, self.filename)
61
62if __name__ == "__main__":
63    unittest.main()

..........
----------------------------------------------------------------------
Ran 10 tests in 0.270s

OK

Дискусия
История
Това решение има само една версия.