def test_pointcut_update(self): """tests PointCut.update()""" other = PointCut() other.add_method(self.an_obj, "method2") self.pointcut.add_method(self.an_obj, "method1") self.pointcut.update(other) self.assertEquals(self.pointcut.values(), [["method1", "method2"]])
def setUp(self): """Initalizes observer / observable objects""" self.obj = SillyClass() pcut = PointCut() pcut.add_method(self.obj, 'do_something') self.obs = MyObserver() weaver.weave_pointcut(pcut, ObserverAspect, [self.obs]) self.pcut = pcut
def test_unweave_pointcut(self): """tests unweave() for pointcuts""" pcut = PointCut() pcut.add_method(self.klass, 'foo') weaver.weave_pointcut(pcut, ContractAspect) self.assertEquals(len(weaver.get_aspects(self.klass, 'foo')), 1) weaver.unweave_pointcut(pcut, ContractAspect) self.assertEquals(weaver.get_aspect(ContractAspect), None)
def setUp(self): """Create a BaseJumper instance and weave ConfirmationAspect around jump() """ self.guy = BaseJumper() pcut = PointCut() pcut.add_method(self.guy, "jump") weaver.weave_pointcut(pcut, ConfirmationConcreteAspect) self.pcut = pcut
def test_pointcut_difference(self): """tests PointCut.difference()""" method_names = ['method1', 'method2', 'method3'] for name in method_names: self.pointcut.add_method(self.an_obj, name) other = PointCut() other.add_method(self.an_obj, "method1") result = self.pointcut - other self.assertEquals(result.values(), [["method2", "method3"]])
def test_wrapped_method_doc(self): """ensures that wrapper and wrapped have the same docstring""" # Memorize old method object original_meth = self.instance.foo # Build simple pointcut on self.instance.foo pointcut = PointCut() pointcut.add_method(self.instance, 'foo') # Wrap method wrap_method(ContractAspect(pointcut), self.instance, 'foo') # Check new method object is not the old none wrapped_meth = self.instance.foo self.assert_(original_meth is not wrapped_meth, "wrapped method should not have the same identity !") # Check docstrings are equal self.assertEquals(original_meth.__doc__, wrapped_meth.__doc__)
def weaveRuleCreator(): # Weaving Memoizing Aspect with XSLTElement xsltElements = [ XsltElement, TemplateElement, ApplyImportsElement, ApplyTemplatesElement, CallTemplateElement, ChooseElement, ForEachElement, IfElement, SortElement, OtherwiseElement, WhenElement, WithParamElement, AttributeElement, CommentElement, CopyElement, CopyOfElement, ElementElement, ProcessingInstructionElement, NumberElement, TextElement, ValueOfElement, ParamElement, VariableElement ] pcut = PointCut() for e in xsltElements: pcut.add_method(e, 'instantiate') weaver.weave_pointcut(pcut, RuleCreator)
def run(): """Observer example """ foreign = ForeignClass(10) obs = MyObserver() print "*"*30 print "Before weaving ObserverAspect, changes on foo won't be observerd" print "" print "Changing foo ..." foreign.set_value(11) print "Did the observer see anything ?" print "" print "Now : weave observer aspect, and re-change foo ..." pcut = PointCut() pcut.add_method(foreign, 'set_value') weaver.weave_pointcut(pcut, ObserverAspect, [obs]) foreign.set_value(12) print "Did the observer see anything ?" print "*"*30
def setUp(self): """just build an empty pointcut, and a basic object""" self.pointcut = PointCut() self.an_obj = object()