Пример #1
0
    def _make_key(self, args):
        """

        :param args: the dict of final callargs
        :return: str
        """
        func = self.__func__
        owner = self.im_class
        if owner:
            spec = get_qualname(owner) + "." + func.__name__
        else:
            spec = get_qualname(func)
        if args:
            s = []
            for k in sorted(args.keys()):
                v = args[k]
                s.append('{0}={1!r}'.format(k, v))
            spec += '({0})'.format(','.join(s))
        else:
            spec += '()'
        return spec
Пример #2
0
    def test_basic(self):
        def f():
            pass

        class Desc(object):
            def __get__(self, obj, instance=None):
                pass

        class A(object):
            desc = Desc()

            def im(self):
                pass

            @classmethod
            def cm(cls):
                pass

            @staticmethod
            def sm():
                pass

        # assignment to class makes f a method
        A.f = f
        a = A()
        # assignment to instance doesn't make f a method
        a.ff = f

        self.assertEqual(get_qualname(f), 'yzcache.tests.f')
        self.assertEqual(get_qualname(A), 'yzcache.tests.A')
        self.assertEqual(get_qualname(a), 'yzcache.tests.A')

        self.assertEqual(get_qualname(A.cm), 'yzcache.tests.A.cm')
        self.assertEqual(get_qualname(a.cm), 'yzcache.tests.A.cm')

        self.assertEqual(get_qualname(A.sm), 'yzcache.tests.sm')
        self.assertEqual(get_qualname(A.im), 'yzcache.tests.A.im')
        self.assertEqual(get_qualname(a.im), 'yzcache.tests.A.im')
        self.assertEqual(get_qualname(A.f), 'yzcache.tests.A.f')
        self.assertEqual(get_qualname(a.f), 'yzcache.tests.A.f')
        self.assertEqual(get_qualname(a.ff), 'yzcache.tests.f')