From b2e77f281365007b756626372fb234c13f9426bb Mon Sep 17 00:00:00 2001 From: Michele Simionato Date: Thu, 8 Apr 2021 07:41:51 +0200 Subject: func.__module__ was not copied anymore --- src/tests/documentation.py | 7 +++---- src/tests/test.py | 6 ++++++ 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'src/tests') diff --git a/src/tests/documentation.py b/src/tests/documentation.py index 40b0a28..3ddc6a1 100644 --- a/src/tests/documentation.py +++ b/src/tests/documentation.py @@ -1852,14 +1852,13 @@ def to_method(f): self = inspect.Parameter('self', inspect.Parameter.POSITIONAL_OR_KEYWORD) params.insert(0, self) # insert self del params[-1] # remove context - newsig = sig.replace(parameters=params) + newsig = '%s%s' % (f.__name__, sig.replace(parameters=params)) return FunctionMaker.create( - '%s%s' % (f.__name__, newsig), - 'context = self.context; return _func_%s' % sig, + newsig, 'context = self.context; return _func_%s' % sig, dict(_func_=f)) -def foo(x, context): +def foo(x, context=None): return x diff --git a/src/tests/test.py b/src/tests/test.py index ad45ca1..c10757d 100644 --- a/src/tests/test.py +++ b/src/tests/test.py @@ -69,6 +69,12 @@ class DocumentationTestCase(unittest.TestCase): err = doctest.testmod(doc)[0] self.assertEqual(err, 0) + def test_copy_dunder_attrs(self): + traced = doc.trace(doc.foo) + self.assertEqual(traced.__module__, 'documentation') + self.assertEqual(traced.__annotations__, {}) + self.assertEqual(traced.__defaults__, (None,)) + def test_singledispatch1(self): with assertRaises(RuntimeError): doc.singledispatch_example1() -- cgit v1.2.1