def test_check_required_plugins(self): with mock.patch.object(Plugin, '__init__') as mock_plugin: mock_plugin.return_value = None plugin_manager = PluginManager('') plugins = {} plugins_config = { 'plugin_1': {}, 'plugin_2': {} } with self.assertRaises(PluginRequirementsError) as e: plugin_manager._check_required_plugins(plugins_config, plugins) self.assertEqual( str(e.exception), "Missing required plugins: 'plugin_1', 'plugin_2'" ) plugin_1 = Plugin(plugin_manager, {}) plugin_1.version = '0.0.1' plugin_2 = Plugin(plugin_manager, {}) plugin_2.version = '2.0.1' plugins = { 'plugin_1': plugin_1, 'plugin_2': plugin_2 } plugins_config = { 'plugin_1': { 'version': '2.0.0' }, 'plugin_2': {} } with self.assertRaises(PluginRequirementsError) as e: plugin_manager._check_required_plugins(plugins_config, plugins) self.assertEqual( str(e.exception), "Plugin 'plugin_1' must at least version '2.0.0'" ) plugins_config = { 'plugin_1': { 'version': '0.0.1' }, 'plugin_2': { 'version': '1.0.0' } } result = plugin_manager._check_required_plugins(plugins_config, plugins) self.assertEquals(result, None)