From 0c4937e759c3e54da896aff7964d3949c4b15720 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Tue, 6 Sep 2022 00:35:05 +0300 Subject: [PATCH] gh-96478: Test `@overload` on C functions (GH-96479) Co-authored-by: Alex Waygood (cherry picked from commit f177f6f29b069f522a0b3ba44eaae19852b6d2b0) Co-authored-by: Nikita Sobolev --- Lib/test/test_typing.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 776a6f003c0691..7df7e3ceb6803d 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -4379,6 +4379,20 @@ def blah(): blah() + @patch("typing._overload_registry", + defaultdict(lambda: defaultdict(dict))) + def test_overload_on_compiled_functions(self): + # The registry starts out empty: + self.assertEqual(typing._overload_registry, {}) + + # This should just not fail: + overload(sum) + overload(print) + + # No overloads are recorded (but, it still has a side-effect): + self.assertEqual(typing.get_overloads(sum), []) + self.assertEqual(typing.get_overloads(print), []) + def set_up_overloads(self): def blah(): pass