Exemplo n.º 1
0
def main():
    qt_app = QtWidgets.QApplication(sys.argv)
    qt_app.setOrganizationName("The Qubes Project")
    qt_app.setOrganizationDomain("http://qubes-os.org")
    qt_app.setApplicationName("Qube Manager")
    qt_app.setWindowIcon(QtGui.QIcon.fromTheme("qubes-manager"))
    qt_app.lastWindowClosed.connect(loop_shutdown)

    qubes_app = Qubes()

    loop = quamash.QEventLoop(qt_app)
    asyncio.set_event_loop(loop)
    dispatcher = events.EventsDispatcher(qubes_app)

    manager_window = TemplateManagerWindow(qt_app, qubes_app, dispatcher)
    manager_window.show()

    try:
        loop.run_until_complete(
            asyncio.ensure_future(dispatcher.listen_for_events()))
    except asyncio.CancelledError:
        pass
    except Exception:  # pylint: disable=broad-except
        loop_shutdown()
        exc_type, exc_value, exc_traceback = sys.exc_info()[:3]
        handle_exception(exc_type, exc_value, exc_traceback)
    def setUp(self):
        super(DomainsWidgetTest, self).setUp()

        self.widget = domains_widget.DomainTray('org.qubes.ui.tray.Domains')
        self.widget.initialize_menu()

        self.qapp = Qubes()
Exemplo n.º 3
0
def main():
    parser = ArgumentParser()
    parser.add_argument('--profile-interceptors',
                        action='store_true',
                        default=False)
    args = parser.parse_args()
    profile_if_requested = profile if args.profile_interceptors else identity

    with Popen([
            "i3status", "-c",
            os.path.join(os.path.dirname(sys.argv[0]), "i3status.conf")
    ],
               stdout=PIPE) as proc:
        qubes = Qubes()
        restarted = os.environ.get('RESTARTED') == '1'
        potentially_add_skipped_statuses = identity  # not supported in the sync script
        modify = potentially_add_skipped_statuses(
            create_modify_specific_fields(
                interceptors_by_instance=profile_if_requested({
                    'holder_disk_info':
                    DiskInterceptor(qubes),  #LatencyInterceptor(100, 5000, ),
                    'holder_running_qubes':
                    RunningQubesInterceptor(qubes),
                }),
                interceptors_by_name=profile_if_requested(
                    {'battery': BatteryInterceptor()})))

        intercept_i3status(proc, restarted, modify)
Exemplo n.º 4
0
    def setUp(self):
        super(CloneVMTest, self).setUp()
        self.qtapp, self.loop = init_qtapp()

        self.qapp = Qubes()

        # mock up the Create VM Thread to avoid changing system state
        self.patcher_thread = unittest.mock.patch(
            'qubesmanager.common_threads.CloneVMThread')
        self.mock_thread = self.patcher_thread.start()
        self.addCleanup(self.patcher_thread.stop)

        # mock the progress dialog to speed testing up
        self.patcher_progress = unittest.mock.patch(
            'PyQt5.QtWidgets.QProgressDialog')
        self.mock_progress = self.patcher_progress.start()
        self.addCleanup(self.patcher_progress.stop)

        # mock the progress dialog to speed testing up
        self.patcher_warning = unittest.mock.patch(
            'PyQt5.QtWidgets.QMessageBox.warning')
        self.mock_warning = self.patcher_warning.start()
        self.addCleanup(self.patcher_warning.stop)

        self.dialog = clone_vm.CloneVMDlg(self.qtapp, self.qapp)
Exemplo n.º 5
0
    def validate_existing_size(self):
        """This method checks for existing private volume size and new
        values in the config.json"""
        assert "vmsizes" in self.config
        assert "sd_app" in self.config["vmsizes"]
        assert "sd_log" in self.config["vmsizes"]

        assert isinstance(self.config["vmsizes"]["sd_app"], int), \
            "Private volume size of sd-app must be an integer value."
        assert isinstance(self.config["vmsizes"]["sd_log"], int), \
            "Private volume size of sd-log must be an integer value."

        app = Qubes()
        if "sd-app" in app.domains:
            vm = app.domains["sd-app"]
            vol = vm.volumes["private"]
            assert (
                vol.size <=
                self.config["vmsizes"]["sd_app"] * 1024 * 1024 * 1024
            ), "sd-app private volume is already bigger than configuration."

        if "sd-log" in app.domains:
            vm = app.domains["sd-log"]
            vol = vm.volumes["private"]
            assert (
                vol.size <=
                self.config["vmsizes"]["sd_log"] * 1024 * 1024 * 1024
            ), "sd-log private volume is already bigger than configuration."
Exemplo n.º 6
0
    def setUp(self):
        super(BackupTest, self).setUp()

        # mock up nonexistence of saved backup settings
        self.patcher_open = unittest.mock.patch('builtins.open')
        self.mock_open = self.patcher_open.start()
        self.mock_open.side_effect = FileNotFoundError()
        self.addCleanup(self.patcher_open.stop)

        # mock up the Backup Thread to avoid accidentally changing system state
        self.patcher_thread = unittest.mock.patch(
            'qubesmanager.backup.BackupThread')
        self.mock_thread = self.patcher_thread.start()
        self.addCleanup(self.patcher_thread.stop)

        self.qapp = Qubes()
        self.qtapp = QtGui.QApplication(["test", "-style", "cleanlooks"])

        self.dispatcher = events.EventsDispatcher(self.qapp)

        self.loop = quamash.QEventLoop(self.qtapp)

        self.dialog = backup.BackupVMsWindow(self.qtapp, self.qapp,
                                             self.dispatcher)

        self.dialog.show()
Exemplo n.º 7
0
 def setUp(self):
     self.app = Qubes()
     self.vm = self.app.domains[self.vm_name]
     # self._reboot()
     if self.vm.is_running():
         pass
     else:
         self.vm.start()
Exemplo n.º 8
0
    def __init__(self):
        self.qubes_app = Qubes()

        self.pools = []
        self.total_size = 0
        self.used_size = 0
        self.warning_message = []

        self.__populate_pools()
Exemplo n.º 9
0
def main():
    qubes_app = Qubes()
    qt_app = QtGui.QApplication(sys.argv)

    log_window = LogDialog(qubes_app, sys.argv[1])
    log_window.show()

    qt_app.exec_()
    qt_app.exit()
Exemplo n.º 10
0
def parse_args():
    app = Qubes()
    names = [x.name for x in app.domains if x.klass != 'AdminVM']

    ap = ArgumentParser()
    ap.add_argument('vm', choices=names)
    ap.add_argument('--rules', default=DEFAULT_RULES, nargs='*')

    args = ap.parse_args()
    args.vm = next(x for x in app.domains if x.name == args.vm)
    return args
    def setUp(self):
        self.app = Qubes()
        with open("config.json") as c:
            config = json.load(c)
            if 'environment' not in config:
                config['environment'] = 'dev'

            if config['environment'] == 'prod':
                self.apt_url = FPF_APT_SOURCES_BUSTER
            else:
                self.apt_url = FPF_APT_SOURCES_BUSTER_DEV
    def setUp(self):
        self.app = Qubes()
        with open("config.json") as c:
            config = json.load(c)
            if "environment" not in config:
                config["environment"] = "dev"

            if config["environment"] == "prod":
                self.apt_url = FPF_APT_SOURCES_BUSTER
            else:
                self.apt_url = FPF_APT_SOURCES_BUSTER_DEV
Exemplo n.º 13
0
    def setUp(self):
        super(VMSettingsTest, self).setUp()

        self.mock_qprogress = unittest.mock.patch('PyQt4.QtGui.QProgressDialog')
        self.mock_qprogress.start()

        self.addCleanup(self.mock_qprogress.stop)

        self.qapp = Qubes()
        self.qtapp = QtGui.QApplication(["test", "-style", "cleanlooks"])
        self.loop = quamash.QEventLoop(self.qtapp)
Exemplo n.º 14
0
    def setUp(self):
        super(BackupTest, self).setUp()

        # mock up nonexistence of saved backup settings
        self.patcher = unittest.mock.patch('builtins.open')
        self.mock_open = self.patcher.start()
        self.mock_open.side_effect = FileNotFoundError()
        self.addCleanup(self.patcher.stop)

        self.qapp = Qubes()
        self.qtapp = QtGui.QApplication(sys.argv)
        self.dialog = backup_gui.BackupVMsWindow(self.qtapp, self.qapp)
Exemplo n.º 15
0
    def setUp(self):
        super(QubeManagerTest, self).setUp()

        # # todo: mockup no settings file
        # self.patcher = unittest.mock.patch('builtins.open')
        # self.mock_open = self.patcher.start()
        # self.mock_open.side_effect = FileNotFoundError()
        # self.addCleanup(self.patcher.stop)

        self.qapp = Qubes()
        self.qtapp = QtGui.QApplication(sys.argv)
        self.dialog = qube_manager.VmManagerWindow(self.qtapp, self.qapp)
Exemplo n.º 16
0
    def setUp(self):
        super(GlobalSettingsTest, self).setUp()
        self.qtapp, self.loop = init_qtapp()

        self.qapp = Qubes()
        self.dialog = global_settings.GlobalSettingsWindow(
            self.qtapp, self.qapp)

        self.setattr_patcher = unittest.mock.patch.object(
            type(self.dialog.qubes_app), "__setattr__")
        self.setattr_mock = self.setattr_patcher.start()
        self.addCleanup(self.setattr_patcher.stop)
Exemplo n.º 17
0
    def setUp(self):
        super(GlobalSettingsTest, self).setUp()

        self.qapp = Qubes()
        self.qtapp = QtGui.QApplication(["test", "-style", "cleanlooks"])
        self.loop = quamash.QEventLoop(self.qtapp)
        self.dialog = global_settings.GlobalSettingsWindow(self.qtapp,
                                                           self.qapp)

        self.setattr_patcher = unittest.mock.patch.object(
            type(self.dialog.qvm_collection), "__setattr__")
        self.setattr_mock = self.setattr_patcher.start()
        self.addCleanup(self.setattr_patcher.stop)
Exemplo n.º 18
0
    def setUp(self):
        super(VMSettingsTest, self).setUp()
        self.qtapp, self.loop = init_qtapp()

        self.mock_qprogress = unittest.mock.patch(
            'PyQt5.QtWidgets.QProgressDialog')
        self.mock_qprogress.start()

        self.addCleanup(self.mock_qprogress.stop)

        self.qapp = Qubes()

        if "test-vm" in self.qapp.domains:
            del self.qapp.domains["test-vm"]
Exemplo n.º 19
0
    def setUpClass(cls):
        qapp = Qubes()

        cls.dom0_name = "dom0"

        cls.vms = []
        cls.running_vm = None

        for vm in qapp.domains:
            if vm.klass != "AdminVM" and vm.is_running():
                cls.running_vm = vm.name
            if vm.klass != "AdminVM" and vm.get_disk_utilization() > 0:
                cls.vms.append(vm.name)
            if cls.running_vm and len(cls.vms) >= 3:
                break
Exemplo n.º 20
0
def main():
    qt_app = QtGui.QApplication(sys.argv)
    qt_app.setOrganizationName("The Qubes Project")
    qt_app.setOrganizationDomain("http://qubes-os.org")
    qt_app.setApplicationName("Qube Manager")
    qt_app.setWindowIcon(QtGui.QIcon.fromTheme("qubes-manager"))

    sys.excepthook = handle_exception

    qubes_app = Qubes()

    manager_window = VmManagerWindow(qubes_app, qt_app)

    manager_window.show()
    manager_window.update_table()
    qt_app.exec_()
Exemplo n.º 21
0
def main():
    qtapp = QtGui.QApplication(sys.argv)
    qtapp.setOrganizationName("The Qubes Project")
    qtapp.setOrganizationDomain("http://qubes-os.org")
    qtapp.setApplicationName("Qubes Global Settings")

    sys.excepthook = handle_exception

    app = Qubes()

    global_window = GlobalSettingsWindow(qtapp, app)

    global_window.show()

    qtapp.exec_()
    qtapp.exit()
Exemplo n.º 22
0
def main():

    qt_app = QtWidgets.QApplication(sys.argv)
    qt_app.setOrganizationName("The Qubes Project")
    qt_app.setOrganizationDomain("http://qubes-os.org")
    qt_app.setApplicationName("Qubes Restore VMs")

    sys.excepthook = handle_exception

    qubes_app = Qubes()

    restore_window = RestoreVMsWindow(qt_app, qubes_app)

    restore_window.show()

    qt_app.exec_()
    qt_app.exit()
Exemplo n.º 23
0
def main():

    qt_app = QtGui.QApplication(sys.argv)
    qt_app.setOrganizationName("The Qubes Project")
    qt_app.setOrganizationDomain("http://qubes-os.org")
    qt_app.setApplicationName("Qubes Backup VMs")

    sys.excepthook = handle_exception

    app = Qubes()

    backup_window = BackupVMsWindow(qt_app, app)

    backup_window.show()

    qt_app.exec_()
    qt_app.exit()
Exemplo n.º 24
0
    def setUp(self):
        super(NewVmTest, self).setUp()
        self.qtapp, self.loop = init_qtapp()

        self.qapp = Qubes()

        # mock up the Create VM Thread to avoid changing system state
        self.patcher_thread = unittest.mock.patch(
            'qubesmanager.create_new_vm.CreateVMThread')
        self.mock_thread = self.patcher_thread.start()
        self.addCleanup(self.patcher_thread.stop)

        # mock the progress dialog to speed testing up
        self.patcher_progress = unittest.mock.patch(
            'PyQt5.QtWidgets.QProgressDialog')
        self.mock_progress = self.patcher_progress.start()
        self.addCleanup(self.patcher_progress.stop)

        self.dialog = create_new_vm.NewVmDlg(self.qtapp, self.qapp)
    def __init__(self, **properties):
        super().__init__(**properties)

        self.pool_warned = False
        self.vms_warned = set()

        self.qubes_app = Qubes()

        self.set_application_id("org.qubes.qui.tray.DiskSpace")
        self.register()

        prefs_action = Gio.SimpleAction.new("prefs", GLib.VariantType.new("s"))
        prefs_action.connect("activate", launch_preferences_dialog)
        self.add_action(prefs_action)

        self.icon = Gtk.StatusIcon()
        self.icon.connect('button-press-event', self.make_menu)
        self.refresh_icon()

        GObject.timeout_add_seconds(120, self.refresh_icon)

        Gtk.main()
Exemplo n.º 26
0
    def __init__(self, **properties):
        super().__init__(**properties)

        self.qubes_app: Qubes = Qubes()

        self.set_application_id("org.qubes.qui.tray.RemoteSupport")
        self.register()

        # load objects
        self.builder: Gtk.Builder = Gtk.Builder()
        self.builder.add_from_file(pkg_resources.resource_filename(
            __name__, 'remote_gui.glade'))

        # ask window
        self.ask_window: AskWindow = AskWindow(
            self.builder, self.qubes_app, self)
        self.ask_window.ok_button.connect("clicked", self.start_remote)
        self.ask_window.cancel_button.connect("clicked", self.exit_app)

        # progress window
        self.progress_window: ProgressWindow = ProgressWindow(
            self.builder, self.qubes_app, self)
        self.progress_window.abort_button.connect("clicked", self.exit_app)

        # status icon
        self.status_icon: RemoteSupportIcon = RemoteSupportIcon(
            self.qubes_app, self.exit_app)

        self.start_process: typing.Optional[subprocess.Popen] = None
        self.current_window: typing.Optional[Gtk.Dialog] = None

        self.ask_window.ask_dialog.show()
        self.vm_name: typing.Optional[str] = None

        self.aborted = False

        Gtk.main()
Exemplo n.º 27
0
class GlobalSettingsTest(unittest.TestCase):
    def setUp(self):
        super(GlobalSettingsTest, self).setUp()
        self.qtapp, self.loop = init_qtapp()

        self.qapp = Qubes()
        self.dialog = global_settings.GlobalSettingsWindow(
            self.qtapp, self.qapp)

        self.setattr_patcher = unittest.mock.patch.object(
            type(self.dialog.qubes_app), "__setattr__")
        self.setattr_mock = self.setattr_patcher.start()
        self.addCleanup(self.setattr_patcher.stop)

    def test_00_settings_started(self):
        # non-empty drop-downs
        self.assertNotEqual(self.dialog.default_kernel_combo.currentText(), "",
                            "Default kernel not listed")
        self.assertNotEqual(self.dialog.default_netvm_combo.currentText(), "",
                            "Default netVM not listed")
        self.assertNotEqual(self.dialog.default_template_combo.currentText(),
                            "", "Default template not listed")
        self.assertNotEqual(self.dialog.clock_vm_combo.currentText(), "",
                            "ClockVM not listed")
        self.assertNotEqual(self.dialog.update_vm_combo.currentText(), "",
                            "UpdateVM for dom0 not listed")
        self.assertNotEqual(self.dialog.default_dispvm_combo.currentText(), "",
                            "Default DispVM not listed")

        # not empty memory settings
        self.assertTrue(
            len(self.dialog.min_vm_mem.text()) > 4, "Too short min mem value")
        self.assertTrue(
            len(self.dialog.dom0_mem_boost.text()) > 4,
            "Too short dom0 mem boost value")

    def test_01_load_correct_defs(self):
        # correctly selected default template
        selected_default_template = \
            self.dialog.default_template_combo.currentText()
        self.assertTrue(
            selected_default_template.startswith(
                str(getattr(self.qapp, 'default_template', '(none)'))),
            "Incorrect default template loaded")

        # correctly selected default NetVM
        selected_default_netvm = self.dialog.default_netvm_combo.currentText()
        self.assertTrue(
            selected_default_netvm.startswith(
                str(getattr(self.qapp, 'default_netvm', '(none)'))),
            "Incorrect default netVM loaded")

        # correctly selected default kernel
        selected_default_kernel = self.dialog.default_kernel_combo.currentText(
        )
        self.assertTrue(
            selected_default_kernel.startswith(
                str(getattr(self.qapp, 'default_kernel', '(none)'))),
            "Incorrect default kernel loaded")

        # correct ClockVM
        selected_clockvm = self.dialog.clock_vm_combo.currentText()
        correct_clockvm = str(getattr(self.qapp, 'clockvm', "(none)"))
        self.assertTrue(selected_clockvm.startswith(correct_clockvm),
                        "Incorrect clockVM loaded")

        # correct updateVM
        selected_updatevm = self.dialog.update_vm_combo.currentText()
        correct_updatevm = str(getattr(self.qapp, 'updatevm', "(none)"))
        self.assertTrue(selected_updatevm.startswith(correct_updatevm),
                        "Incorrect updateVm loaded")

        # correct defaultDispVM
        selected_default_dispvm = self.dialog.default_dispvm_combo.currentText(
        )
        current_default_dispvm = getattr(self.qapp, 'default_dispvm', None)
        if current_default_dispvm is None:
            correct_default_dispvm = "(none)"
        else:
            correct_default_dispvm = str(current_default_dispvm)
        self.assertTrue(
            selected_default_dispvm.startswith(correct_default_dispvm),
            "Incorrect defaultDispVM loaded")

        # update vm status
        self.assertEqual(self.qapp.check_updates_vm,
                         self.dialog.updates_vm.isChecked(),
                         "Incorrect check qube updates value loaded")

    def test_02_dom0_updates_load(self):
        # check dom0 updates
        dom0_updates = self.qapp.domains['dom0'].features.get(
            'service.qubes-update-check', True)

        self.assertEqual(bool(dom0_updates),
                         self.dialog.updates_dom0.isChecked(),
                         "Incorrect dom0 updates value")

    def __set_noncurrent(self, widget):
        if widget.count() < 2:
            self.skipTest("not enough choices for " + widget.objectName())

        widget.setCurrentIndex(0)
        while widget.currentText().endswith("(current)") \
                or widget.currentText().startswith("(none)"):
            widget.setCurrentIndex(widget.currentIndex() + 1)

        return widget.currentData()

    def __set_none(self, widget):
        widget.setCurrentIndex(0)
        while not widget.currentText().startswith("(none)"):
            if widget.currentIndex() == widget.count():
                self.skipTest("none not available for " + widget.objectName())
            widget.setCurrentIndex(widget.currentIndex() + 1)

    def __click_ok(self):
        okwidget = self.dialog.buttonBox.button(self.dialog.buttonBox.Ok)

        QtTest.QTest.mouseClick(okwidget, QtCore.Qt.LeftButton)

    def __click_cancel(self):
        cancelwidget = self.dialog.buttonBox.button(
            self.dialog.buttonBox.Cancel)

        QtTest.QTest.mouseClick(cancelwidget, QtCore.Qt.LeftButton)

    def test_03_nothing_changed_ok(self):
        self.__click_ok()

        self.assertEqual(self.setattr_mock.call_count, 0,
                         "Changes occurred despite no changes being made")

    def test_04_nothing_changed_cancel(self):
        self.__click_cancel()

        self.assertEqual(self.setattr_mock.call_count, 0,
                         "Changes occurred despite no changes being made")

    def test_10_set_update_vm(self):
        new_updatevm_name = self.__set_noncurrent(self.dialog.update_vm_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('updatevm',
                                                  new_updatevm_name)

    def test_11_set_update_vm_to_none(self):
        self.__set_none(self.dialog.update_vm_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('updatevm', None)

    def test_20_set_clock_vm(self):
        new_clockvm_name = self.__set_noncurrent(self.dialog.clock_vm_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('clockvm', new_clockvm_name)

    def test_21_set_clock_vm_to_none(self):
        self.__set_none(self.dialog.clock_vm_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('clockvm', None)

    def test_30_set_default_netvm(self):
        new_netvm_name = self.__set_noncurrent(self.dialog.default_netvm_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('default_netvm',
                                                  new_netvm_name)

    def test_31_set_default_netvm_to_none(self):
        self.__set_none(self.dialog.default_netvm_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('default_netvm', None)

    def test_40_set_default_template(self):
        new_def_template_name = self.__set_noncurrent(
            self.dialog.default_template_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('default_template',
                                                  new_def_template_name)

    def test_50_set_default_kernel(self):
        new_def_kernel_name = self.__set_noncurrent(
            self.dialog.default_kernel_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('default_kernel',
                                                  new_def_kernel_name)

    def test_51_set_default_kernel_to_none(self):
        self.__set_none(self.dialog.default_kernel_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('default_kernel', None)

    def test_60_set_dom0_updates_true(self):
        current_state = self.dialog.updates_dom0.isChecked()
        self.dialog.updates_dom0.setChecked(not current_state)

        with unittest.mock.patch.object(
                type(self.dialog.qubes_app.domains['dom0'].features),
                '__setitem__') as mock_features:
            self.__click_ok()
            mock_features.assert_called_once_with('service.qubes-update-check',
                                                  not current_state)

    def test_70_change_vm_updates(self):
        current_state = self.dialog.updates_vm.isChecked()
        self.dialog.updates_vm.setChecked(not current_state)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('check_updates_vm',
                                                  not current_state)

    @unittest.mock.patch("PyQt5.QtWidgets.QMessageBox.question",
                         return_value=QtWidgets.QMessageBox.Yes)
    @unittest.mock.patch('qubesadmin.features.Features.__setitem__')
    def test_72_set_all_vms_true(self, mock_features, msgbox):

        QtTest.QTest.mouseClick(self.dialog.enable_updates_all,
                                QtCore.Qt.LeftButton)

        self.assertEqual(msgbox.call_count, 1,
                         "Wrong number of confirmation window calls")

        call_list_expected = \
            [unittest.mock.call('service.qubes-update-check', True) for vm
             in self.qapp.domains if vm.klass != 'AdminVM']

        self.assertListEqual(call_list_expected, mock_features.call_args_list)

    @unittest.mock.patch("PyQt5.QtWidgets.QMessageBox.question",
                         return_value=QtWidgets.QMessageBox.Yes)
    @unittest.mock.patch('qubesadmin.features.Features.__setitem__')
    def test_73_set_all_vms_false(self, mock_features, msgbox):

        QtTest.QTest.mouseClick(self.dialog.disable_updates_all,
                                QtCore.Qt.LeftButton)

        self.assertEqual(msgbox.call_count, 1,
                         "Wrong number of confirmation window calls")

        call_list_expected = \
            [unittest.mock.call('service.qubes-update-check', False) for vm
             in self.qapp.domains if vm.klass != 'AdminVM']

        self.assertListEqual(call_list_expected, mock_features.call_args_list)

    def test_80_set_default_dispvm(self):
        new_dispvm_name = self.__set_noncurrent(
            self.dialog.default_dispvm_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('default_dispvm',
                                                  new_dispvm_name)

    def test_81_set_default_dispvm_to_none(self):
        self.__set_none(self.dialog.default_dispvm_combo)

        self.__click_ok()

        self.setattr_mock.assert_called_once_with('default_dispvm', None)

    @unittest.mock.patch.object(
        type(Qubes()),
        '__getattr__',
        side_effect=(lambda x: False if x == 'check_updates_vm' else None))
    def test_90_test_all_set_none(self, mock_qubes):
        mock_qubes.configure_mock()
        self.dialog = global_settings.GlobalSettingsWindow(
            self.qtapp, self.qapp)

        self.assertEqual(self.dialog.update_vm_combo.currentText(),
                         "(none) (current)",
                         "UpdateVM displays as none incorrectly")
        self.assertEqual(self.dialog.clock_vm_combo.currentText(),
                         "(none) (current)",
                         "ClockVM displays as none incorrectly")
        self.assertEqual(self.dialog.default_netvm_combo.currentText(),
                         "(none) (current)",
                         "Default NetVM displays as none incorrectly")
        self.assertEqual(self.dialog.default_template_combo.currentText(),
                         "(none) (current)",
                         "Default template displays as none incorrectly")
        self.assertEqual(self.dialog.default_kernel_combo.currentText(),
                         "(none) (current)",
                         "Defautl kernel displays as none incorrectly")
        self.assertEqual(self.dialog.default_dispvm_combo.currentText(),
                         "(none) (current)",
                         "Default DispVM displays as none incorrectly")
Exemplo n.º 28
0
 def setUp(self):
     self.app = Qubes()
     with open("config.json") as c:
         self.config = json.load(c)
Exemplo n.º 29
0
 def setUp(self):
     super(BackupUtilsTest, self).setUp()
     self.qapp = Qubes()
     self.qtapp = QtGui.QApplication(["test", "-style", "cleanlooks"])
     self.loop = quamash.QEventLoop(self.qtapp)
 def setUp(self):
     self.app = Qubes()