• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FlysonBot / Mastermind / 12154602358

04 Dec 2024 06:56AM UTC coverage: 97.093% (+1.0%) from 96.123%
12154602358

push

github

FlysonBot
test: add test for main package

212 of 216 new or added lines in 4 files covered. (98.15%)

2 existing lines in 2 files now uncovered.

2472 of 2546 relevant lines covered (97.09%)

0.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.56
/tests/ui/menu/test_data_menu.py
1
import unittest
1✔
2
from typing import Any
1✔
3
from unittest.mock import call, patch
1✔
4

5
from mastermind.ui.menu.data_menu import DataDisplayMenu
1✔
6

7

8
class TestDataDisplayMenu(unittest.TestCase):
1✔
9
    class ConcreteDataDisplayMenu(DataDisplayMenu):
1✔
10
        name = "Data Menu"
1✔
11
        _fetch_data = None
1✔
12
        _render_data = None
1✔
13
        _empty_message = "No data available"
1✔
14

15
    def setUp(self):
1✔
16
        self.data_menu = self.ConcreteDataDisplayMenu()
1✔
17

18
    @patch.object(ConcreteDataDisplayMenu, "_fetch_data", return_value="test data")
1✔
19
    @patch.object(ConcreteDataDisplayMenu, "_render_data")
1✔
20
    def test_print_content_with_data(self, mock_render_data, mock_fetch_data):
1✔
21
        with patch("builtins.print") as mock_print:
1✔
22
            self.data_menu._print_content()
1✔
23
            mock_fetch_data.assert_called()
1✔
24
            mock_render_data.assert_called_with("test data")
1✔
25
            mock_print.assert_not_called()
1✔
26

27
    @patch.object(ConcreteDataDisplayMenu, "_fetch_data", return_value=None)
1✔
28
    @patch.object(ConcreteDataDisplayMenu, "_render_data")
1✔
29
    def test_print_content_without_data(
1✔
30
        self, mock_render_data, mock_fetch_data
31
    ):
32
        with patch("builtins.print") as mock_print:
1✔
33
            self.data_menu._print_content()
1✔
34
            mock_fetch_data.assert_called()
1✔
35
            mock_render_data.assert_not_called()
1✔
36
            mock_print.assert_called_with("No data available")
1✔
37

38
    def test_abstract_methods(self):
1✔
39
        with self.assertRaises(TypeError):
1✔
40
            DataDisplayMenu()
1✔
41

42
        def render_data(data: Any) -> None:
1✔
43
            for item in data:
1✔
44
                print(item)
1✔
45

46
        self.data_menu._fetch_data = lambda: [1, 2, 3, 4]
1✔
47
        self.data_menu._render_data = render_data
1✔
48

49
        with patch("builtins.print") as mock_print:
1✔
50
            self.data_menu._print_content()
1✔
51
            mock_print.assert_has_calls([call(1), call(2), call(3), call(4)])
1✔
52

53

54
if __name__ == "__main__":
1✔
UNCOV
55
    unittest.main()
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc