Skip to content

Commit 8c28737

Browse files
JelleZijlstramiss-islington
authored andcommitted
Improve test coverage for is_typeddict (pythonGH-104884)
In particular, it's important to test that is_typeddict(TypedDict) returns False. (cherry picked from commit 1497607) Co-authored-by: Jelle Zijlstra <[email protected]>
1 parent fa7d8ce commit 8c28737

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

Lib/test/test_typing.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6756,10 +6756,29 @@ class Wrong(*bases):
67566756
pass
67576757

67586758
def test_is_typeddict(self):
6759-
assert is_typeddict(Point2D) is True
6760-
assert is_typeddict(Union[str, int]) is False
6759+
self.assertIs(is_typeddict(Point2D), True)
6760+
self.assertIs(is_typeddict(Union[str, int]), False)
67616761
# classes, not instances
6762-
assert is_typeddict(Point2D()) is False
6762+
self.assertIs(is_typeddict(Point2D()), False)
6763+
call_based = TypedDict('call_based', {'a': int})
6764+
self.assertIs(is_typeddict(call_based), True)
6765+
self.assertIs(is_typeddict(call_based()), False)
6766+
6767+
T = TypeVar("T")
6768+
class BarGeneric(TypedDict, Generic[T]):
6769+
a: T
6770+
self.assertIs(is_typeddict(BarGeneric), True)
6771+
self.assertIs(is_typeddict(BarGeneric[int]), False)
6772+
self.assertIs(is_typeddict(BarGeneric()), False)
6773+
6774+
class NewGeneric[T](TypedDict):
6775+
a: T
6776+
self.assertIs(is_typeddict(NewGeneric), True)
6777+
self.assertIs(is_typeddict(NewGeneric[int]), False)
6778+
self.assertIs(is_typeddict(NewGeneric()), False)
6779+
6780+
# The TypedDict constructor is not itself a TypedDict
6781+
self.assertIs(is_typeddict(TypedDict), False)
67636782

67646783
def test_get_type_hints(self):
67656784
self.assertEqual(

0 commit comments

Comments
 (0)