예제 #1
0
파일: test_main.py 프로젝트: sa2c/Rynner
def test_with_runner(qtbot):
    p = plugins()
    allp = [PluginCollection("All", p['plugins']), *p['plugins']]

    main = main_view(qtbot, host(), allp)

    # tab 1 has an ok button
    tab = select_tab(main, 1)
    ok_button = find_QPushButton(tab, 'new')
    assert ok_button is None

    # tab 0 does not
    tab = select_tab(main, 0)
    ok_button = find_QPushButton(tab, 'new')
    assert ok_button is None
예제 #2
0
hosts = []

for filename in host_config_files:
    with open(filename, 'r') as file:
        host_config = yaml.load(file)
    host_class = getattr(rynner.host, host_config['classname'])
    host = host_class(host_config['domain'], host_config['username'],
                      host_config['rsa_file'])
    hosts.append(host)

#---------------------------------------------------------
# INITIALISE PLUGINS
#---------------------------------------------------------

plugins = [PluginCollection("All Runs", [plugin1, plugin2]), plugin1, plugin2]

#---------------------------------------------------------
# Run application
#---------------------------------------------------------


def update_plugins():
    for plugin in [plugin1, plugin2]:
        plugin_id = plugin.plugin_id
        for host in hosts:
            host.update(plugin_id)


timer = QTimer()
timer.timeout.connect(update_plugins)
예제 #3
0
 def test_hosts_of_a_plugin_empty_by_default(self):
     a = PluginCollection('name', [])
     self.assertEqual(a.hosts, [])
예제 #4
0
 def test_none_parent_by_default(self):
     parent = QWidget()
     a = PluginCollection('name', [])
     self.assertEqual(a.parent(), None)
예제 #5
0
 def test_plugin_collection_set_parent(self):
     parent = QWidget()
     a = PluginCollection('name', [], parent=parent)
     self.assertEqual(a.parent(), parent)
예제 #6
0
 def test_plugin_collection_signal_connectable(self):
     # note: signal cannot be connected to slot if QObject init not called
     a = PluginCollection('name', [])
     a.runs_changed.connect(lambda x: None)
예제 #7
0
 def test_labels_none_by_default(self):
     plugin = PluginCollection(self.name, self.plugins)
     self.assertEqual(plugin.labels, None)
예제 #8
0
 def test_add_labels(self):
     labels = MM()
     plugin = PluginCollection(self.name, self.plugins, labels=labels)
     self.assertEqual(plugin.labels, labels)
예제 #9
0
 def instance(self, **kwargs):
     self.rc = PluginCollection(self.name, self.plugins, **kwargs)
예제 #10
0
class TestPluginCollection(unittest.TestCase):
    def setUp(self):
        self.name = 'Test Collection Name'
        self.plugins = [MM(), MM()]

    def instance(self, **kwargs):
        self.rc = PluginCollection(self.name, self.plugins, **kwargs)

    def test_instance(self):
        self.instance()

    def test_has_name_attr(self):
        self.instance()
        self.assertEqual(self.rc.name, self.name)

    def test_has_plugins(self):
        self.instance()
        self.assertEqual(self.rc.plugins, self.plugins)

    def test_has_view_keys_with_default(self):
        self.instance()
        self.assertEqual(self.rc.view_keys, Plugin.view_keys)

    def test_has_view_keys_as_specified(self):
        view_keys = MM()
        self.instance(view_keys=view_keys)
        self.assertEqual(self.rc.view_keys, view_keys)

    def test_add_labels(self):
        labels = MM()
        plugin = PluginCollection(self.name, self.plugins, labels=labels)
        self.assertEqual(plugin.labels, labels)

    def test_labels_none_by_default(self):
        plugin = PluginCollection(self.name, self.plugins)
        self.assertEqual(plugin.labels, None)

    def test_create_view_none_by_default(self):
        self.instance()
        self.assertEqual(self.rc.create_view, None)

    def test_has_build_index_view_none(self):
        self.instance()
        self.assertEqual(self.rc.build_index_view, None)

    def test_has_runs_changed_signal(self):
        self.instance()
        self.assertIsInstance(self.rc.runs_changed, Signal)

    def test_plugin_collection_signal_connectable(self):
        # note: signal cannot be connected to slot if QObject init not called
        a = PluginCollection('name', [])
        a.runs_changed.connect(lambda x: None)

    def test_plugin_collection_set_parent(self):
        parent = QWidget()
        a = PluginCollection('name', [], parent=parent)
        self.assertEqual(a.parent(), parent)

    def test_none_parent_by_default(self):
        parent = QWidget()
        a = PluginCollection('name', [])
        self.assertEqual(a.parent(), None)

    def test_hosts_of_a_plugin_empty_by_default(self):
        a = PluginCollection('name', [])
        self.assertEqual(a.hosts, [])

    def test_list_jobs(self):
        self.instance()

        # build hosts
        host1 = MM()
        host1.jobs.return_value = ['host1-job1', 'host1-job2']
        host2 = MM()
        host2.jobs.return_value = ['host2-job2', 'host2-job2']
        self.rc.hosts = [host1, host2]

        # list hosts
        ret = self.rc.list_jobs()

        # list repeated twice (once for each Plugin)
        # with all host1 first and host2 second
        jobs = [
            'host1-job1', 'host1-job2', 'host1-job1', 'host1-job2',
            'host2-job2', 'host2-job2', 'host2-job2', 'host2-job2'
        ]

        # check calls to host.jobs
        self.assertEqual(ret, jobs)

        # check for host1
        for host in [host1, host2]:
            call_arg_list = host.jobs.call_args_list
            call_type1, call_type2 = call_arg_list

            args, vals = call_type1
            self.assertEqual(args, (self.plugins[0].domain, ))

            args, vals = call_type2
            self.assertEqual(args, (self.plugins[1].domain, ))