summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2023-05-24 19:21:28 (GMT)
committerGitHub <noreply@github.com>2023-05-24 19:21:28 (GMT)
commit3d91d034a0d74804a356d773f54230e62c9924ba (patch)
tree1ac3e7e2ee2fa1eb7d2b74afd81cb8cfdcfefbaa /Lib
parentddc29c8fdb59849e7eebd8e72462b14a98994874 (diff)
downloadcpython-3d91d034a0d74804a356d773f54230e62c9924ba.zip
cpython-3d91d034a0d74804a356d773f54230e62c9924ba.tar.gz
cpython-3d91d034a0d74804a356d773f54230e62c9924ba.tar.bz2
[3.12] Improve test coverage for is_typeddict (GH-104884) (#104889)
Improve test coverage for is_typeddict (GH-104884) In particular, it's important to test that is_typeddict(TypedDict) returns False. (cherry picked from commit 1497607a8e99f1103c40368dd5f9057f0146a520) Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_typing.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py
index a3fad6f..e68ce6e 100644
--- a/Lib/test/test_typing.py
+++ b/Lib/test/test_typing.py
@@ -7223,10 +7223,29 @@ class TypedDictTests(BaseTestCase):
pass
def test_is_typeddict(self):
- assert is_typeddict(Point2D) is True
- assert is_typeddict(Union[str, int]) is False
+ self.assertIs(is_typeddict(Point2D), True)
+ self.assertIs(is_typeddict(Union[str, int]), False)
# classes, not instances
- assert is_typeddict(Point2D()) is False
+ self.assertIs(is_typeddict(Point2D()), False)
+ call_based = TypedDict('call_based', {'a': int})
+ self.assertIs(is_typeddict(call_based), True)
+ self.assertIs(is_typeddict(call_based()), False)
+
+ T = TypeVar("T")
+ class BarGeneric(TypedDict, Generic[T]):
+ a: T
+ self.assertIs(is_typeddict(BarGeneric), True)
+ self.assertIs(is_typeddict(BarGeneric[int]), False)
+ self.assertIs(is_typeddict(BarGeneric()), False)
+
+ class NewGeneric[T](TypedDict):
+ a: T
+ self.assertIs(is_typeddict(NewGeneric), True)
+ self.assertIs(is_typeddict(NewGeneric[int]), False)
+ self.assertIs(is_typeddict(NewGeneric()), False)
+
+ # The TypedDict constructor is not itself a TypedDict
+ self.assertIs(is_typeddict(TypedDict), False)
def test_get_type_hints(self):
self.assertEqual(