def test_register_interface_module(self): """ Registering and deregistering API interfaces Verifies: * only specified API interfaces are added and removed * existing attributes and functions are added to the new API """ manager = ModuleManager() api0 = TestAPI() api1 = TestAPI() module = Bar() interfaces = ((module, module.foo), (module, module.bar), (module, "xoo"), (module, "zoo")) interface_names = ("foo", "bar", "xoo", "zoo") for interface in interfaces: manager.register_interface(*interface) manager.register_interface_module(api0) manager.register_interface_module(api1) self.assert_(api0 in manager._interface_modules) for name in interface_names: self.assert_(name in api0._registered_interfaces) self.assert_(name in api1._registered_interfaces)
def test_register_interface(self): """ Registering and deregistering attributes and functions exposed to the API Verifies: * only specified functions and attributes are added and removed * functions are added to all registered interfaces * name can be given as a param * functions can be replaced """ manager = ModuleManager() api0 = TestAPI() api1 = TestAPI() module = Bar() manager.register_interface_module(api0) manager.register_interface_module(api1) interfaces = ( (module, module.foo), (module, module.bar), (module, "xoo"), (module, "zoo"), (module, (module.foo, {"name": "foo2"})), ) interface_names = ("foo", "bar", "xoo", "zoo") for interface in interfaces: manager.register_interface(*interface) for interface in interfaces: self.assert_(interface in manager._interfaces) for name in interface_names: self.assert_(name in api0._registered_interfaces) self.assert_(name in api1._registered_interfaces) for interface in interfaces: manager.deregister_interface(*interface) for interface in interfaces: self.assertFalse(interface in manager._interfaces) self.assertFalse(api0._interfaces) self.assertFalse(api1._interfaces)