Skip to content

Commit 0e10629

Browse files
committed
fix tests
1 parent a5973ce commit 0e10629

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

src/test_typing_extensions.py

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8988,23 +8988,50 @@ def test_evaluate_forward_ref_undefined(self):
89888988
)
89898989

89908990
def test_evaluate_forward_ref_nested(self):
8991+
ref = typing_extensions.ForwardRef("Union[int, list['str']]")
8992+
ns = {"Union": Union}
8993+
if sys.version_info >= (3, 11):
8994+
expected = Union[int, list[str]]
8995+
else:
8996+
expected = Union[int, list['str']] # TODO: evaluate nested forward refs in Python < 3.11
8997+
self.assertEqual(
8998+
typing_extensions.evaluate_forward_ref(ref, globals=ns),
8999+
expected,
9000+
)
9001+
self.assertEqual(
9002+
typing_extensions.evaluate_forward_ref(
9003+
ref, globals=ns, format=typing_extensions.Format.FORWARDREF
9004+
),
9005+
expected,
9006+
)
9007+
self.assertEqual(
9008+
typing_extensions.evaluate_forward_ref(ref, format=typing_extensions.Format.STRING),
9009+
"Union[int, list['str']]",
9010+
)
9011+
9012+
why = typing_extensions.ForwardRef('"\'str\'"')
9013+
self.assertIs(typing_extensions.evaluate_forward_ref(why), str)
9014+
9015+
@skipUnless(sys.version_info >= (3, 10), "Relies on PEP 604")
9016+
def test_evaluate_forward_ref_nested_pep604(self):
89919017
ref = typing_extensions.ForwardRef("int | list['str']")
9018+
if sys.version_info >= (3, 11):
9019+
expected = int | list[str]
9020+
else:
9021+
expected = int | list['str'] # TODO: evaluate nested forward refs in Python < 3.11
89929022
self.assertEqual(
89939023
typing_extensions.evaluate_forward_ref(ref),
8994-
int | list[str],
9024+
expected,
89959025
)
89969026
self.assertEqual(
89979027
typing_extensions.evaluate_forward_ref(ref, format=typing_extensions.Format.FORWARDREF),
8998-
int | list[str],
9028+
expected,
89999029
)
90009030
self.assertEqual(
90019031
typing_extensions.evaluate_forward_ref(ref, format=typing_extensions.Format.STRING),
90029032
"int | list['str']",
90039033
)
90049034

9005-
why = typing_extensions.ForwardRef('"\'str\'"')
9006-
self.assertIs(typing_extensions.evaluate_forward_ref(why), str)
9007-
90089035
def test_evaluate_forward_ref_none(self):
90099036
none_ref = typing_extensions.ForwardRef('None')
90109037
self.assertIs(typing_extensions.evaluate_forward_ref(none_ref), None)
@@ -9016,7 +9043,7 @@ def test_globals(self):
90169043
typing_extensions.evaluate_forward_ref(ref)
90179044
self.assertEqual(
90189045
typing_extensions.evaluate_forward_ref(ref, globals={'A': A}),
9019-
list[str],
9046+
list[str] if sys.version_info >= (3, 11) else list['str'],
90209047
)
90219048

90229049
def test_owner(self):

0 commit comments

Comments
 (0)