示例#1
0
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())
示例#2
0
 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())
示例#3
0
class NewStyleClass:
    __metaclass__ = type
    classLevelFrameInfo = advice.getFrameInfo(sys._getframe())
示例#4
0
class ClassicClass:
    __metaclass__ = ClassType
    classLevelFrameInfo = advice.getFrameInfo(sys._getframe())
示例#5
0
            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())
示例#6
0
 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())
示例#7
0
    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())