def handle(self, *args, **options): """ """ PlManager = PluginManager() if options['param_dir']: PlManager.locator = FileLocator() PlManager.locator.directories_list = [options['param_dir']] else: return result = PlManager.find_plugins() print '\nWe could find candidates:' if not result: return for id, pl in enumerate(result): print '\t(%d) %s ' % (id, pl.get_name())
def handle(self, *args, **options): """ """ PlManager = PluginManager() result = PlManager.get_installed() print '\nCandidates for uninstall:' if not result: return for id, pl in enumerate(result): print '\t(%d) %s ' % (id, pl.get_name()) answer = raw_input('type id plugin for uinstall, or "n" for cancel:') try: id = int(answer) pl = result[id] except (ValueError, IndexError): return installed = PlManager.uninstall_plugin(pl) print 'Installed:' for id, pl in enumerate(installed): print '\t(%d) %s ' % (id, pl.get_name())
def setUp(self): """ """ self.simplePluginManager = PluginManager()
class PluginManagerTest(unittest.TestCase): """ Тестируем работу класса PluginManager """ def setUp(self): """ """ self.simplePluginManager = PluginManager() def config_manager(self): self.locator = SimpleLocator() self.simplePluginManager.locator = self.locator self.validator = SimpleValidator() self.simplePluginManager.validator = self.validator self.storage = SimpleStorage() self.simplePluginManager.storage = self.storage self.installer = TestInstaller() self.simplePluginManager.installer = self.installer def get_plugins(self): self.config_manager() self.bad_plugin = SimplePlugin() self.bad_plugin.version = '1.0' result = self.simplePluginManager.find_plugins() self.good_plugin = result[0] self.good_plugin.version = '2.0' def test_empty_run(self): """ Тестируем функции настройки менеджера плагинов @return: """ self.config_manager() # Проверяем что поместили ссылку на локатор self.assertEqual(self.simplePluginManager.locator, self.locator) self.assertEqual(self.simplePluginManager.validator, self.validator) self.assertEqual(self.simplePluginManager.storage, self.storage) self.assertEqual(self.simplePluginManager.installer, self.installer) def test_find_plugins(self): """ Тестируем функцию поиска плагинов @return: """ self.config_manager() # Получили список доступных к установке плагинов result = self.simplePluginManager.find_plugins() self.assertEqual(len(result), self.locator.len_list) def test_install_plugin(self): """ Тестируем работу функции установки @return: """ self.get_plugins() # Нельзя установить невалидный плагин self.assertRaises(MPException, self.simplePluginManager.install_plugin, self.bad_plugin) # Нельзя установить уже установленный плагин self.simplePluginManager.install_plugin(self.good_plugin) self.assertRaises(MPException, self.simplePluginManager.install_plugin, self.good_plugin) def test_activate_plugin(self): """ Тестируем работу метода активации @return: """ self.get_plugins() # Нельзя активировать неустанвленный плагин self.assertRaises(MPException, self.simplePluginManager.activate_plugin, self.good_plugin) # Нельзя активировать уже активированный плагин self.assertRaises(MPException, self.simplePluginManager.activate_plugin, self.good_plugin) def test_uninstalled_plugin(self): """ Тестируем работу деинсталяции @return: """ self.get_plugins() # Нельзя удалить неустановленный плагин self.assertRaises(MPException, self.simplePluginManager.uninstall_plugin, self.good_plugin) # Нельзя удалить включенный плагин, надо сперва его выключить self.simplePluginManager.install_plugin(self.good_plugin) self.simplePluginManager.activate_plugin(self.good_plugin) self.assertRaises(MPException, self.simplePluginManager.uninstall_plugin, self.good_plugin) def test_deactivate_plugin(self): """ Тестируем работу метода активации @return: """ self.get_plugins() self.simplePluginManager.install_plugin(self.good_plugin) # Нельзя выключить неактивированный плагин self.assertRaises(MPException, self.simplePluginManager.deactivate_plugin, self.good_plugin)