File: test_ui_window.py

package info (click to toggle)
minigalaxy 1.2.6-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,460 kB
  • sloc: python: 5,539; xml: 340; sh: 147; makefile: 8
file content (107 lines) | stat: -rw-r--r-- 3,219 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import sys
from unittest import TestCase
from unittest.mock import MagicMock, patch
from simplejson.errors import JSONDecodeError

m_gtk = MagicMock()
m_gi = MagicMock()
m_library = MagicMock()
m_preferences = MagicMock()
m_login = MagicMock()
m_about = MagicMock()
m_categoryfilters = MagicMock()


class UnitTestGtkTemplate:

    def __init__(self):
        self.Child = m_gtk

    def from_file(self, lib_file):
        def passthrough(func):
            def passthrough2(*args, **kwargs):
                return func(*args, **kwargs)
            return passthrough2
        return passthrough

    Callback = MagicMock()


class UnitTestGiRepository:

    class Gtk:
        Template = UnitTestGtkTemplate()
        Widget = MagicMock()
        Settings = MagicMock()
        ResponseType = MagicMock()

        class ApplicationWindow:
            def __init__(self, title):
                pass

            set_default_icon_list = MagicMock()
            show_all = MagicMock()

    Gdk = MagicMock()
    GdkPixbuf = MagicMock()
    Gio = MagicMock()
    GLib = MagicMock
    Notify = MagicMock()


u_gi_repository = UnitTestGiRepository()
sys.modules['gi.repository'] = u_gi_repository
sys.modules['gi'] = m_gi
sys.modules['minigalaxy.ui.library'] = m_library
sys.modules['minigalaxy.ui.preferences'] = m_preferences
sys.modules['minigalaxy.ui.login'] = m_login
sys.modules['minigalaxy.ui.about'] = m_about
sys.modules['minigalaxy.ui.gtk'] = u_gi_repository
sys.modules['minigalaxy.ui.categoryfilters'] = m_categoryfilters
from minigalaxy.ui.window import Window  # noqa: E402


class TestWindow(TestCase):
    def test1_init(self):
        with patch('minigalaxy.ui.window.Api.can_connect', return_value=False):
            config = MagicMock()
            config.locale = "en_US.UTF-8"
            config.keep_window_maximized = False
            api = MagicMock()
            api.can_connect.return_value = False
            test_window = Window(api=api, config=config, download_manager=MagicMock())
            exp = True
            obs = test_window.offline
            self.assertEqual(exp, obs)

    def test2_init(self):
        config = MagicMock()
        config.locale = "en_US.UTF-8"
        config.keep_window_maximized = False
        api = MagicMock()
        api.authenticate.return_value = True
        test_window = Window(api=api, config=config, download_manager=MagicMock())
        exp = False
        obs = test_window.offline
        self.assertEqual(exp, obs)
        api.authenticate.assert_called_once()

    def test3_init(self):
        config = MagicMock()
        config.locale = "en_US.UTF-8"
        config.keep_window_maximized = False
        api = MagicMock()
        api.authenticate.side_effect = JSONDecodeError(msg='mock', doc='mock', pos=0)
        test_window = Window(api=api, config=config, download_manager=MagicMock())
        exp = True
        obs = test_window.offline
        self.assertEqual(exp, obs)


del sys.modules['gi']
del sys.modules['gi.repository']
del sys.modules['minigalaxy.ui.library']
del sys.modules['minigalaxy.ui.preferences']
del sys.modules['minigalaxy.ui.login']
del sys.modules['minigalaxy.ui.about']
del sys.modules['minigalaxy.ui.gtk']