def test_get_aspect(self): """tests weaver.get_aspect()""" aspect = weaver.get_aspect(ProfilerAspect) self.assertEquals(aspect, None) weaver.weave_object(self.klass, ProfilerAspect) aspect = weaver.get_aspect(ProfilerAspect) self.assertEquals(isinstance(aspect, ProfilerAspect), True)
def setUp(self): """setUp method for tests """ self.a = SillyClass() self.b = SillySubclass() weaver.weave_methods(self.a, ContractAspect) weaver.weave_methods(self.b, ContractAspect) weaver.get_aspect(ContractAspect)
def test_dump_readable_profiles(self): """tests that dump_readable_profiles() doesn't raise an exception""" weaver.weave_object(Test, ProfilerAspect) self.instance.bar() aspect = weaver.get_aspect(ProfilerAspect) stream = StringIO() aspect.dump_readable_profiles(stream)
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 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 test_register_aspect(self): """tests() aspect registration""" old_foo = self.instance.foo weaver.weave_object(self.klass, ContractAspect) # instances of self.klass must have been aspected ! self.assertNotEquals(old_foo, self.instance.foo) contract = weaver.get_aspect(ContractAspect) old_foo = self.instance.foo # Trying to reaspect self.instance should not change its methods weaver._weave_method(self.klass, 'foo', contract) self.assertEquals(old_foo, self.instance.foo)
def run(): """Run example """ writer = MyClass() weaver.weave_methods(MyClass, ProfilerAspect) print "Warning : this can take a while ...., be patient" writer.write_one_char('a') writer.write_two_chars('a') writer.write_thousands_chars('a') writer.write_thousands_stringio('a') writer.write_thousands_cstringio('a') writer.write_thousands_join('a') writer.write_one_char('a') import sys aspect_instance = weaver.get_aspect(ProfilerAspect) aspect_instance.dump_readable_profiles(sys.stdout)