コード例 #1
0
    def test_decorator_wraps(self):
        def decorator(function):
            @wraps(function)
            @modifiers.autokwoargs
            def _decorated(a, b=2, *args, **kwargs):
                function(1, *args, **kwargs)

            return _decorated

        func = decorator(_wrapped)
        sig = specifiers.signature(func)
        self.assertSigsEqual(sig, support.s('a, y, *, b=2, z'))
        self.assertEqual(
            sig.sources, {
                '+depths': {
                    func: 0,
                    _wrapped: 1
                },
                'a': [func],
                'b': [func],
                'y': [_wrapped],
                'z': [_wrapped]
            })
        support.test_func_sig_coherent(func,
                                       check_return=False,
                                       check_invalid=False)
コード例 #2
0
ファイル: test_autoforwards.py プロジェクト: regnat/sigtools
 def _test(self, func, expected, sources, incoherent=False):
     sig = specifiers.signature(func)
     self.assertSigsEqual(sig, support.s(expected))
     self.assertSourcesEqual(sig.sources, sources, func)
     if not incoherent:
         support.test_func_sig_coherent(
             func, check_return=False, check_invalid=False)
コード例 #3
0
 def _test(self, func, expected, expected_src):
     sig = specifiers.signature(func)
     self.assertSigsEqual(sig, support.s(expected))
     self.assertSourcesEqual(sig.sources, expected_src, func)
     with self.assertRaises(AssertionError):
         support.test_func_sig_coherent(
             func, check_return=False, check_invalid=False)
コード例 #4
0
 def _test(self, func, expected, sources, incoherent=False):
     sig = specifiers.signature(func)
     self.assertSigsEqual(sig, support.s(expected))
     self.assertSourcesEqual(sig.sources, sources, func)
     if not incoherent:
         support.test_func_sig_coherent(func,
                                        check_return=False,
                                        check_invalid=False)
コード例 #5
0
 def _test(self, func, ensure_incoherent=True):
     self.assertSigsEqual(specifiers.signature(func),
                          signatures.signature(func))
     if ensure_incoherent:
         with self.assertRaises(AssertionError):
             support.test_func_sig_coherent(func,
                                            check_return=False,
                                            check_invalid=False)
コード例 #6
0
ファイル: autoforwards_py3.py プロジェクト: epsy/sigtools
 def _test(self, func, ensure_incoherent=True):
     self.assertSigsEqual(
         specifiers.signature(func),
         signatures.signature(func))
     if ensure_incoherent:
         with self.assertRaises(AssertionError):
             support.test_func_sig_coherent(
                 func, check_return=False, check_invalid=False)
コード例 #7
0
def poktranslator_test(self, expected_sig_str, orig_sig_str, posoargs,
                       kwoargs):
    expected_sig = s(expected_sig_str)
    orig_sig = s(orig_sig_str)
    for exp, orig in defaults_variations(expected_sig, orig_sig):
        for exp, orig in stars_variations(exp, orig):
            func = modifiers._PokTranslator(func_from_sig(orig), posoargs,
                                            kwoargs)
            self.assertSigsEqual(exp, signature(func))
            test_func_sig_coherent(func)
            repr(func)  # must not cause an error
コード例 #8
0
ファイル: test_modifiers.py プロジェクト: epsy/sigtools
def poktranslator_test(self, expected_sig_str, orig_sig_str,
                        posoargs, kwoargs):
    expected_sig = s(expected_sig_str)
    orig_sig = s(orig_sig_str)
    for exp, orig in defaults_variations(expected_sig, orig_sig):
        for exp, orig in stars_variations(exp, orig):
            func = modifiers._PokTranslator(
                func_from_sig(orig), posoargs, kwoargs)
            self.assertSigsEqual(exp, signature(func))
            test_func_sig_coherent(func)
            repr(func) # must not cause an error
コード例 #9
0
ファイル: test_autoforwards.py プロジェクト: regnat/sigtools
 def test_functools_wrapped(self):
     @wraps(_wrapped)
     def func(a, *args, **kwargs):
         _wrapped(1, *args, **kwargs)
     sig = specifiers.signature(func)
     self.assertSigsEqual(sig, support.s('a, y, *, z'))
     self.assertEqual(sig.sources, {
         '+depths': {func: 0, _wrapped: 1},
         'a': [func],
         'y': [_wrapped], 'z': [_wrapped]
     })
     support.test_func_sig_coherent(
         func, check_return=False, check_invalid=False)
コード例 #10
0
ファイル: test_autoforwards.py プロジェクト: regnat/sigtools
 def test_partial(self):
     def _wrapper(wrapped, a, *args, **kwargs):
         return wrapped(*args, **kwargs)
     func = partial(_wrapper, _wrapped)
     sig = specifiers.signature(func)
     self.assertSigsEqual(sig, support.s('a, x, y, *, z'))
     self.assertEqual(sig.sources, {
         'a': [_wrapper],
         'x': [_wrapped], 'y': [_wrapped], 'z': [_wrapped],
         '+depths': {func: 0, _wrapper: 1, _wrapped: 2}
     })
     support.test_func_sig_coherent(
         func, check_return=False, check_invalid=False)
コード例 #11
0
 def test_decorator_wraps(self):
     def decorator(function):
         @wraps(function)
         @modifiers.autokwoargs
         def _decorated(a, b=2, *args, **kwargs):
             function(1, *args, **kwargs)
         return _decorated
     func = decorator(_wrapped)
     sig = specifiers.signature(func)
     self.assertSigsEqual(sig, support.s('a, y, *, b=2, z'))
     self.assertEqual(sig.sources, {
         '+depths': {func: 0, _wrapped: 1},
         'a': [func], 'b': [func],
         'y': [_wrapped], 'z': [_wrapped]
     })
     support.test_func_sig_coherent(
         func, check_return=False, check_invalid=False)
コード例 #12
0
    def test_functools_wrapped(self):
        @wraps(_wrapped)
        def func(a, *args, **kwargs):
            _wrapped(1, *args, **kwargs)

        sig = specifiers.signature(func)
        self.assertSigsEqual(sig, support.s('a, y, *, z'))
        self.assertEqual(
            sig.sources, {
                '+depths': {
                    func: 0,
                    _wrapped: 1
                },
                'a': [func],
                'y': [_wrapped],
                'z': [_wrapped]
            })
        support.test_func_sig_coherent(func,
                                       check_return=False,
                                       check_invalid=False)
コード例 #13
0
    def test_partial(self):
        def _wrapper(wrapped, a, *args, **kwargs):
            return wrapped(*args, **kwargs)

        func = partial(_wrapper, _wrapped)
        sig = specifiers.signature(func)
        self.assertSigsEqual(sig, support.s('a, x, y, *, z'))
        self.assertEqual(
            sig.sources, {
                'a': [_wrapper],
                'x': [_wrapped],
                'y': [_wrapped],
                'z': [_wrapped],
                '+depths': {
                    func: 0,
                    _wrapper: 1,
                    _wrapped: 2
                }
            })
        support.test_func_sig_coherent(func,
                                       check_return=False,
                                       check_invalid=False)