class FrameInfoTest(unittest.TestCase): classLevelFrameInfo = advice.getFrameInfo(sys._getframe()) def testModuleInfo(self): kind, module, f_locals, f_globals = moduleLevelFrameInfo self.assertEquals(kind, "module") for d in module.__dict__, f_locals, f_globals: self.assert_(d is globals()) def testClassicClassInfo(self): kind, module, f_locals, f_globals = ClassicClass.classLevelFrameInfo self.assertEquals(kind, "class") self.assert_(f_locals is ClassicClass.__dict__) # ??? for d in module.__dict__, f_globals: self.assert_(d is globals()) def testNewStyleClassInfo(self): kind, module, f_locals, f_globals = NewStyleClass.classLevelFrameInfo self.assertEquals(kind, "class") for d in module.__dict__, f_globals: self.assert_(d is globals()) def testCallInfo(self): kind, module, f_locals, f_globals = advice.getFrameInfo( sys._getframe()) self.assertEquals(kind, "function call") self.assert_(f_locals is locals()) # ??? for d in module.__dict__, f_globals: self.assert_(d is globals())
def testCallInfo(self): kind, module, f_locals, f_globals = advice.getFrameInfo( sys._getframe()) self.assertEquals(kind, "function call") self.assert_(f_locals is locals()) # ??? for d in module.__dict__, f_globals: self.assert_(d is globals())
class NewStyleClass: __metaclass__ = type classLevelFrameInfo = advice.getFrameInfo(sys._getframe())
class ClassicClass: __metaclass__ = ClassType classLevelFrameInfo = advice.getFrameInfo(sys._getframe())
pass class meta(type): __metaclass__ = metameta self.assertEquals(advice.determineMetaclass((meta, type)), metameta) from types import ClassType def ping(log, value): def pong(klass): log.append((value, klass)) return [klass] advice.addClassAdvisor(pong) class ClassicClass: __metaclass__ = ClassType classLevelFrameInfo = advice.getFrameInfo(sys._getframe()) class NewStyleClass: __metaclass__ = type classLevelFrameInfo = advice.getFrameInfo(sys._getframe()) moduleLevelFrameInfo = advice.getFrameInfo(sys._getframe())
def testCallInfo(self): kind, module, f_locals, f_globals = advice.getFrameInfo(sys._getframe()) self.assertEquals(kind, "function call") self.assert_(f_locals is locals()) # ??? for d in module.__dict__, f_globals: self.assert_(d is globals())
def testMetaOfClass(self): class metameta(type): pass class meta(type): __metaclass__ = metameta self.assertEquals(advice.determineMetaclass((meta, type)), metameta) from types import ClassType def ping(log, value): def pong(klass): log.append((value,klass)) return [klass] advice.addClassAdvisor(pong) class ClassicClass: __metaclass__ = ClassType classLevelFrameInfo = advice.getFrameInfo(sys._getframe()) class NewStyleClass: __metaclass__ = type classLevelFrameInfo = advice.getFrameInfo(sys._getframe()) moduleLevelFrameInfo = advice.getFrameInfo(sys._getframe())