def test_hot_upgrade(self): """ Load a component from a plugin, then upgrade the plugin and check that the component is reloaded. """ from elisa.plugins.test_simple.test_module import TestComponent from elisa.plugins.test_simple import test_module self.failUnlessEqual(test_module.version, '0.1') def upgrade_plugin(component): res = component.do_something() self.failUnlessEqual(res, 'done in 0.1') self.install_plugin('test_simple-0.2', '0.2/test_simple') self.plugin_registry.load_plugins() self.failUnlessEqual(test_module.version, '0.2') res = component.do_something() self.failUnlessEqual(res, 'done in 0.2') return component.clean() d = TestComponent.create() d.addCallback(upgrade_plugin) return d