예제 #1
0
    def test_load_plugins(self):
        with mock.patch('compose.plugin_manager.os.path.isdir') as mock_isdir, \
                mock.patch('compose.plugin_manager.os.path.isfile') as mock_isfile, \
                mock.patch('compose.plugin_manager.os.listdir') as mock_listdir, \
                mock.patch('imp.load_source') as mock_load_source, \
                mock.patch.object(Plugin, '__init__') as mock_plugin, \
                mock.patch('os.walk') as mock_walk:
            mock_walk.return_value = []
            mock_plugin.return_value = None

            plugin_manager = PluginManager('')
            plugin_manager.plugin_classes = None

            mock_load_source.return_value = self._get_helper_class({
                'plugin': Plugin
            })
            mock_isdir.return_value = True
            mock_isfile.return_value = True
            mock_listdir.return_value = ['plugin_1', 'plugin_2']
            plugin_manager.load_config('', {})

            loaded_plugins = plugin_manager._load_plugins()
            self.assertEquals('plugin_1' in loaded_plugins.keys(), True)
            self.assertEquals('plugin_2' in loaded_plugins.keys(), True)
            self.assertEquals(isinstance(loaded_plugins['plugin_1'], Plugin), True)
            self.assertEquals(isinstance(loaded_plugins['plugin_2'], Plugin), True)
예제 #2
0
    def test_get_plugin_classes_valid_plugins(self):
        with mock.patch('compose.plugin_manager.os.path.isdir') as mock_isdir, \
                mock.patch('compose.plugin_manager.os.path.isfile') as mock_isfile, \
                mock.patch('compose.plugin_manager.os.listdir') as mock_listdir, \
                mock.patch('imp.load_source') as mock_load_source, \
                mock.patch('os.walk') as mock_walk:
            mock_walk.return_value = []
            plugin_manager = PluginManager('')
            plugin_manager.plugin_classes = None
            mock_load_source.return_value = self._get_helper_class({
                'plugin': Plugin
            })
            mock_isdir.return_value = True
            mock_isfile.return_value = True
            mock_listdir.return_value = ['plugin_1', 'plugin_2']

            self.assertEquals(plugin_manager._get_plugin_classes(), {
                'plugin_1': Plugin,
                'plugin_2': Plugin
            })