def test_normal_no_plugins(self): from Products.PluginRegistry.exportimport \ import importPluginRegistry app, registry = self._initRegistry() self.assertEqual(len(registry.listPluginTypeInfo()), 0) self.assertRaises(KeyError, registry.listPlugins, IFoo) self.assertRaises(KeyError, registry.listPlugins, IBar) context = DummyImportContext(app, False) context._files[ 'pluginregistry.xml'] = _NO_PLUGINS_PLUGINREGISTRY_EXPORT importPluginRegistry(context) self.assertEqual(len(registry.listPluginTypeInfo()), 2) info = registry.listPluginTypeInfo()[0] self.assertEqual(info['id'], 'IFoo') self.assertEqual(info['title'], 'foo') self.assertEqual(info['description'], 'Some plugin interface') info = registry.listPluginTypeInfo()[1] self.assertEqual(info['id'], 'IBar') self.assertEqual(info['title'], 'bar') self.assertEqual(info['description'], 'Another plugin interface') self.assertEqual(len(registry.listPlugins(IFoo)), 0) self.assertEqual(len(registry.listPlugins(IBar)), 0)
def test_normal_no_plugins(self): from Products.PluginRegistry.exportimport \ import importPluginRegistry app, registry = self._initRegistry(plugins={IFoo: ('foo_plugin_1', 'foo_plugin_2')}, ) self.assertEqual(len(registry.listPluginTypeInfo()), 0) self.assertRaises(KeyError, registry.listPlugins, IFoo) self.assertRaises(KeyError, registry.listPlugins, IBar) context = DummyImportContext(app, False) context._files['pluginregistry.xml' ] = _NO_PLUGINS_PLUGINREGISTRY_EXPORT importPluginRegistry(context) self.assertEqual(len(registry.listPluginTypeInfo()), 2) info = registry.listPluginTypeInfo()[0] self.assertEqual(info['id'], 'IFoo') self.assertEqual(info['title'], 'foo') self.assertEqual(info['description'], 'Some plugin interface') info = registry.listPluginTypeInfo()[1] self.assertEqual(info['id'], 'IBar') self.assertEqual(info['title'], 'bar') self.assertEqual(info['description'], 'Another plugin interface') self.assertEqual(len(registry.listPlugins(IFoo)), 0) self.assertEqual(len(registry.listPlugins(IBar)), 0)
def test_normal_with_plugins_skip_duplicates(self): # See http://www.zope.org/Collectors/PAS/52 from Products.PluginRegistry.exportimport \ import importPluginRegistry app, registry = self._initRegistry() self.assertEqual(len(registry.listPluginTypeInfo()), 0) self.assertRaises(KeyError, registry.listPlugins, IFoo) self.assertRaises(KeyError, registry.listPlugins, IBar) context = DummyImportContext(app, False) context._files[ 'pluginregistry.xml'] = _NORMAL_PLUGINREGISTRY_EXPORT importPluginRegistry(context) importPluginRegistry(context) # twice should not duplicate self.assertEqual(len(registry.listPluginTypeInfo()), 2)
def test_normal_with_plugins_skip_duplicates(self): # See http://www.zope.org/Collectors/PAS/52 from Products.PluginRegistry.exportimport \ import importPluginRegistry app, registry = self._initRegistry() self.assertEqual(len(registry.listPluginTypeInfo()), 0) self.assertRaises(KeyError, registry.listPlugins, IFoo) self.assertRaises(KeyError, registry.listPlugins, IBar) context = DummyImportContext(app, False) context._files['pluginregistry.xml' ] = _NORMAL_PLUGINREGISTRY_EXPORT importPluginRegistry(context) importPluginRegistry(context) # twice should not duplicate self.assertEqual(len(registry.listPluginTypeInfo()), 2)
def test_empty_skip_purge(self): from Products.PluginRegistry.exportimport \ import importPluginRegistry app, registry = self._initRegistry( plugin_type_info=_PLUGIN_TYPE_INFO, plugins={IFoo: ('foo_plugin_1', 'foo_plugin_2')}, ) self.assertEqual(len(registry.listPluginTypeInfo()), 2) self.assertEqual(len(registry.listPlugins(IFoo)), 2) self.assertEqual(len(registry.listPlugins(IBar)), 0) context = DummyImportContext(app, False) context._files['pluginregistry.xml'] = _EMPTY_PLUGINREGISTRY_EXPORT importPluginRegistry(context) self.assertEqual(len(registry.listPluginTypeInfo()), 2) self.assertEqual(len(registry.listPlugins(IFoo)), 2) self.assertEqual(len(registry.listPlugins(IBar)), 0)