Ejemplo n.º 1
0
    def testNoDisableMissing__run_option_hooks(self):
        """ registration.run_option_hooks: runs the parsing methods for
            registered plugins using option hooks; not disabled if missing
            options in the parser.
            """
        parser = self.MockParser()
        parser.blocks = (('apps', (('sup', ('val1', 'val2')), )), )

        # fake option registration for plugin
        plugin = MockPlugin()
        registration._registered.register(plugin.name, lambda: plugin,
                                          {'option': True})
        registration._option_hooks.register('apps_sup', lambda: plugin, {})

        # run option hooks for plugin, check if it works
        registration.run_option_hooks(parser, disable_missing=False)
        self.assertTrue(hasattr(plugin, 'test__option'))
        self.assertEqual(plugin.test__option,
                         [('sup', 'apps', ('val1', 'val2'))])

        item = registration._registered.get(plugin.name)
        self.assertIsNotNone(item)
        plugin, props = item
        self.assertFalse(props.get('disabled', False))

        # run option hooks again for plugin using empty parser, confirm test
        # plugin has not been disabled
        registration.run_option_hooks(self.MockParser(), disable_missing=False)

        self.assertFalse(props.get('disabled'))
Ejemplo n.º 2
0
    def test__setup_sudo_access(self):
        """ registration.setup_sudo_access: installs a sudo-based `run_root`
            method onto the provided plugin.
            """
        plugin = MockPlugin()
        registration.setup_sudo_access(plugin)

        # check if method was injected
        method = getattr(plugin, 'run_root', None)
        self.assertIsNotNone(method)
        self.assertTrue(callable(method))
Ejemplo n.º 3
0
    def test__run_event_hooks(self):
        """ registration.run_event_hooks: runs the task event methods for
            registered event plugins.
            """
        plugin = MockPlugin()

        # fake event registration for plugin
        for event in ('task_start', 'task_run', 'task_end'):
            registration._event_hooks[event] = [(plugin.name, lambda: plugin)]

            # run event hooks for plugin, check if it works
            registration.run_event_hooks(event, MockTask())

            if event == 'task_start':
                self.assertTrue(hasattr(plugin, 'test__task_started'))

            elif event == 'task_run':
                self.assertTrue(hasattr(plugin, 'test__task_ran'))
                self.assertEqual(plugin.test__task_ran, 1)

            elif event == 'task_end':
                self.assertTrue(hasattr(plugin, 'test__task_ended'))