Exemplo n.º 1
0
 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"]])
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
 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"]])
Exemplo n.º 6
0
 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__)
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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
Exemplo n.º 9
0
 def setUp(self):
     """just build an empty pointcut, and a basic object"""
     self.pointcut = PointCut()
     self.an_obj = object()