3
from landscape.ui.tests.helpers import (
4
ConfigurationProxyHelper, dbus_test_should_skip, dbus_skip_message,
7
if not dbus_test_should_skip:
8
from gi.repository import Gtk
9
from landscape.ui.controller.app import SettingsApplicationController
10
from landscape.ui.controller.configuration import ConfigController
11
from landscape.ui.view.configuration import ClientSettingsDialog
12
from landscape.ui.model.configuration.uisettings import UISettings
14
SettingsApplicationController = object
16
from landscape.tests.helpers import LandscapeTest
19
class ConnectionRecordingSettingsApplicationController(
20
SettingsApplicationController):
23
_connection_kwargs = {}
25
def __init__(self, get_config=None, get_uisettings=None):
26
super(ConnectionRecordingSettingsApplicationController,
29
self.get_config = get_config
31
self.get_uisettings = get_uisettings
33
def _make_connection_name(self, signal, func):
34
return signal + ">" + func.__name__
36
def _record_connection(self, signal, func, *args, **kwargs):
37
connection_name = self._make_connection_name(signal, func)
38
self._connections.add(connection_name)
39
signal_connection_args = self._connection_args.get(
41
signal_connection_args.append(repr(args))
42
self._connection_args = signal_connection_args
43
signal_connection_kwargs = self._connection_kwargs.get(
45
signal_connection_kwargs.append(repr(kwargs))
46
self._connection_kwargs = signal_connection_kwargs
48
def is_connected(self, signal, func):
49
connection_name = self._make_connection_name(signal, func)
50
return self._connections.issuperset(set([connection_name]))
52
def connect(self, signal, func, *args, **kwargs):
53
self._record_connection(signal, func)
56
class SettingsApplicationControllerInitTest(LandscapeTest):
59
super(SettingsApplicationControllerInitTest, self).setUp()
63
Test we connect activate to something useful on application
66
app = ConnectionRecordingSettingsApplicationController()
67
self.assertTrue(app.is_connected("activate", app.setup_ui))
69
if dbus_test_should_skip:
70
skip = dbus_skip_message
73
class SettingsApplicationControllerUISetupTest(LandscapeTest):
75
helpers = [ConfigurationProxyHelper]
78
self.config_string = "\n".join(
80
"data_path = %s" % sys.path[0],
81
"http_proxy = http://proxy.localdomain:3192",
83
"url = https://landscape.canonical.com/message-system",
85
"registration_key = bar",
86
"computer_title = baz",
87
"https_proxy = https://proxy.localdomain:6192",
88
"ping_url = http://landscape.canonical.com/ping"])
89
self.default_data = {"management-type": "not",
91
"hosted-landscape-host": "",
92
"hosted-account-name": "",
93
"hosted-password": "",
94
"local-landscape-host": "",
95
"local-account-name": "",
97
super(SettingsApplicationControllerUISetupTest, self).setUp()
105
self._real_run = Gtk.Dialog.run
106
Gtk.Dialog.run = fake_run
111
def get_uisettings():
112
settings = FakeGSettings(data=self.default_data)
113
return UISettings(settings)
115
self.app = ConnectionRecordingSettingsApplicationController(
116
get_config=get_config, get_uisettings=get_uisettings)
119
Gtk.Dialog.run = self._real_run
121
SettingsApplicationControllerUISetupTest, self).tearDown()
123
def test_setup_ui(self):
125
Test that we correctly setup the L{ClientSettingsDialog} with
126
the config object and correct data
128
self.assertRaises(SystemExit, self.app.setup_ui, data=None,
130
self.assertIsInstance(self.app.settings_dialog, ClientSettingsDialog)
131
self.assertIsInstance(self.app.settings_dialog.controller,
134
if dbus_test_should_skip:
135
skip = dbus_skip_message