Ejemplo n.º 1
0
    def test_search_driver_enable(self):
        '''D-BUS API: Search for a driver which gets enabled'''

        ui = sandbox.TestUI()
        self.stop_capture()

        ui.backend().handlers['kmod:vanilla3d'].package = 'mesa-vanilla'

        # don't enable the driver
        result = ui.search_driver(
            'modalias:pci:v00001001d00003D0sv0sd0bc03sc0i0')
        self.assertEqual(set(ui.get_displayed_handlers()),
                         set(['kmod:vanilla3d', 'kmod:vanilla']))
        self.assertEqual(result, (False, []))
        self.assertEqual(
            ui.backend().handler_info('kmod:vanilla3d')['enabled'], 'False')

        # enable it now
        ui.ui_main_loop = lambda: ui.set_handler_enable(
            'kmod:vanilla3d', 'enable', False, False
        )  # fake main loop to enable kmod:vanilla3d
        result = ui.search_driver(
            'modalias:pci:v00001001d00003D0sv0sd0bc03sc0i0')
        self.assertEqual(set(ui.get_displayed_handlers()),
                         set(['kmod:vanilla3d', 'kmod:vanilla']))
        self.assertEqual(
            result,
            (True, sandbox.fake_pkginfo['default']['mesa-vanilla']['files']))
        self.assertEqual(
            ui.backend().handler_info('kmod:vanilla3d')['enabled'], 'True')
Ejemplo n.º 2
0
    def test_search_driver_enable(self):
        '''D-BUS API: Search for a driver which gets enabled'''

        ui = sandbox.TestUI()
        self.stop_capture()

        ui.backend().handlers['kmod:vanilla3d'].package = 'mesa-vanilla'

        # don't enable the driver
        result = ui.search_driver('modalias:pci:v00001001d00003D0sv0sd0bc03sc0i0')
        self.assertEqual(set(ui.get_displayed_handlers()),
            set(['kmod:vanilla3d', 'kmod:vanilla']))
        self.assertEqual(result, (False, []))
        self.assertEqual(ui.backend().handler_info('kmod:vanilla3d')['enabled'],
            'False')

        # enable it now
        ui.ui_main_loop = lambda: ui.set_handler_enable('kmod:vanilla3d',
            'enable', False, False) # fake main loop to enable kmod:vanilla3d
        result = ui.search_driver('modalias:pci:v00001001d00003D0sv0sd0bc03sc0i0')
        self.assertEqual(set(ui.get_displayed_handlers()),
            set(['kmod:vanilla3d', 'kmod:vanilla']))
        self.assertEqual(result, (True, sandbox.fake_pkginfo['default']['mesa-vanilla']['files']))
        self.assertEqual(ui.backend().handler_info('kmod:vanilla3d')['enabled'],
            'True')
Ejemplo n.º 3
0
 def case(confirm_response, action, confirm, expected_return, expected_enabled):
     ui.confirm_response = confirm_response
     self.assertEqual(ui.set_handler_enable('kmod:vanilla', action,
         confirm), expected_return)
     self.assertEqual(jockey.ui.bool(ui.backend().handler_info('kmod:vanilla')['enabled']),
         expected_enabled)
     self.assertRaises(IndexError, ui.pop_error)
Ejemplo n.º 4
0
 def case(confirm_response, action, confirm, expected_return,
          expected_enabled):
     ui.confirm_response = confirm_response
     self.assertEqual(
         ui.set_handler_enable('kmod:vanilla', action, confirm),
         expected_return)
     self.assertEqual(
         jockey.ui.bool(
             ui.backend().handler_info('kmod:vanilla')['enabled']),
         expected_enabled)
     self.assertRaises(IndexError, ui.pop_error)
Ejemplo n.º 5
0
    def test_set_handler_enable_error(self):
        '''set_handler_enable() on errors'''

        open(os.path.join(OSLib.inst.handler_dir, 'h.py'),
             'w').write('import jockey.handlers' + sandbox.h_nochangemod)

        sys.argv = ['ui-test']
        ui = sandbox.TestUI()
        self.stop_capture()

        for h_id in ui.backend().available():
            self.assert_(
                jockey.ui.bool(ui.backend().handler_info(h_id)['enabled']))
            if 'can_change' in ui.backend().handler_info(h_id):
                no_change_h = h_id
            else:
                change_h = h_id
        assert no_change_h
        assert change_h

        # change an unchangeable handler
        # note: don't set a confirmation response, it shouldn't ask here
        self.assertEqual(ui.set_handler_enable(no_change_h, 'enable', True),
                         False)
        self.assertEqual(ui.pop_error()[1], 'I must live')
        self.assertRaises(IndexError, ui.pop_error)
        self.assertEqual(ui.set_handler_enable(no_change_h, 'disable', True),
                         False)
        self.assertEqual(ui.pop_error()[1], 'I must live')
        self.assertRaises(IndexError, ui.pop_error)
        self.assertEqual(ui.set_handler_enable(no_change_h, 'toggle', True),
                         False)
        self.assertEqual(ui.pop_error()[1], 'I must live')
        self.assertRaises(IndexError, ui.pop_error)

        # invalid operation
        self.assertRaises(ValueError, ui.set_handler_enable, no_change_h,
                          'foo', True)

        # package install failure
        ui.backend().handlers['kmod:mint'].package = 'pretzel'
        self.assertEqual(
            jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']),
            False)
        OSLib.inst.pending_install_remove_exception = 'OMGbroken'
        self.assertEqual(ui.set_handler_enable('kmod:mint', 'enable', False),
                         False)
        self.assertEqual(
            jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']),
            False)
        # one error message about install failure
        (etitle, etext) = ui.pop_error()
        self.assert_('OMGbroken' in etext, '%s: %s' % (etitle, etext))
        self.assertRaises(IndexError, ui.pop_error)

        # install it now
        self.assertEqual(ui.set_handler_enable('kmod:mint', 'enable', False),
                         True)
        self.assertEqual(
            jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']),
            True)

        # package removal failure
        OSLib.inst.pending_install_remove_exception = 'OMGZombie'
        self.assertEqual(ui.set_handler_enable('kmod:mint', 'disable', False),
                         False)
        self.assertEqual(
            jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']),
            True)
        # one error message about removal failure
        (etitle, etext) = ui.pop_error()
        self.assert_('OMGZombie' in etext, '%s: %s' % (etitle, etext))
        self.assertRaises(IndexError, ui.pop_error)
Ejemplo n.º 6
0
    def test_set_handler_enable_error(self):
        '''set_handler_enable() on errors'''

        open (os.path.join(OSLib.inst.handler_dir, 'h.py'), 'w').write(
            'import jockey.handlers' + sandbox.h_nochangemod)

        sys.argv = ['ui-test']
        ui = sandbox.TestUI()
        self.stop_capture()

        for h_id in ui.backend().available():
            self.assert_(jockey.ui.bool(ui.backend().handler_info(h_id)['enabled']))
            if 'can_change' in ui.backend().handler_info(h_id):
                no_change_h = h_id
            else:
                change_h = h_id
        assert no_change_h
        assert change_h

        # change an unchangeable handler
        # note: don't set a confirmation response, it shouldn't ask here
        self.assertEqual(ui.set_handler_enable(no_change_h, 'enable', True), False)
        self.assertEqual(ui.pop_error()[1], 'I must live')
        self.assertRaises(IndexError, ui.pop_error)
        self.assertEqual(ui.set_handler_enable(no_change_h, 'disable', True), False)
        self.assertEqual(ui.pop_error()[1], 'I must live')
        self.assertRaises(IndexError, ui.pop_error)
        self.assertEqual(ui.set_handler_enable(no_change_h, 'toggle', True), False)
        self.assertEqual(ui.pop_error()[1], 'I must live')
        self.assertRaises(IndexError, ui.pop_error)

        # invalid operation
        self.assertRaises(ValueError, ui.set_handler_enable, no_change_h, 'foo', True)

        # package install failure
        ui.backend().handlers['kmod:mint'].package = 'pretzel'
        self.assertEqual(jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']),
            False)
        OSLib.inst.pending_install_remove_exception = 'OMGbroken'
        self.assertEqual(ui.set_handler_enable('kmod:mint', 'enable',
            False), False)
        self.assertEqual(jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']),
            False)
        # one error message about install failure
        (etitle, etext) = ui.pop_error()
        self.assert_('OMGbroken' in etext, '%s: %s' % (etitle, etext))
        self.assertRaises(IndexError, ui.pop_error)

        # install it now
        self.assertEqual(ui.set_handler_enable('kmod:mint', 'enable',
            False), True)
        self.assertEqual(jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']),
            True)

        # package removal failure
        OSLib.inst.pending_install_remove_exception = 'OMGZombie'
        self.assertEqual(ui.set_handler_enable('kmod:mint', 'disable',
            False), False)
        self.assertEqual(jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']),
            True)
        # one error message about removal failure
        (etitle, etext) = ui.pop_error()
        self.assert_('OMGZombie' in etext, '%s: %s' % (etitle, etext))
        self.assertRaises(IndexError, ui.pop_error)