def testGetFactoryContext(self): """ Tests the _get_factory_context() method """ class DummyClass(object): pass class ChildClass(DummyClass): pass # Assert the field doesn't exist yet self.assertRaises(AttributeError, getattr, DummyClass, constants.IPOPO_FACTORY_CONTEXT) # Convert the parent into a component DummyClass = decorators.ComponentFactory("dummy-factory")( decorators.Requires("field", "req")(DummyClass)) # Get the context class_context = decorators.get_factory_context(DummyClass) self.assertIsNotNone(decorators.get_factory_context(DummyClass), "Invalid factory context") # The child has a copy of the parent context child_context = decorators.get_factory_context(ChildClass) self.assertIsNot(child_context, class_context, "The child must have a copy of the context")
def testRequiresMap(self): """ Tests the @RequiresMap decorator """ class DummyClass(object): pass def method(): pass # Empty field or specification for empty in (None, "", " "): self.assertRaises(ValueError, decorators.RequiresMap, empty, "spec", "key") self.assertRaises(ValueError, decorators.RequiresMap, "field", empty, "key") # Empty key for empty in (None, ""): self.assertRaises(ValueError, decorators.RequiresMap, "field", "spec", empty) # Invalid field or specification type for invalid in ([1, 2, 3], tuple((1, 2, 3)), 123): self.assertRaises(TypeError, decorators.Requires, invalid) self.assertRaises( ValueError, decorators.Requires, "field", invalid) # Invalid target for invalid in (None, method, 123): self.assertRaises(TypeError, decorators.Requires("field", "spec"), invalid)