22
33import dataclasses
44import os
5+ import sys
56from typing import TYPE_CHECKING , Dict , List , Optional , Tuple , Type , Union
67
78import pytest
@@ -172,8 +173,12 @@ def function_type_checking_union(p1: Union[bool, TypeCheckingClass1, int], p2: U
172173def test_get_types_type_checking_union ():
173174 types = get_types (function_type_checking_union )
174175 assert list (types ) == ["p1" , "p2" ]
175- assert str (types ["p1" ]) == f"typing.Union[bool, { __name__ } .TypeCheckingClass1, int]"
176- assert str (types ["p2" ]) == f"typing.Union[float, { __name__ } .TypeCheckingClass2]"
176+ if sys .version_info < (3 , 14 ):
177+ assert str (types ["p1" ]) == f"typing.Union[bool, { __name__ } .TypeCheckingClass1, int]"
178+ assert str (types ["p2" ]) == f"typing.Union[float, { __name__ } .TypeCheckingClass2]"
179+ else :
180+ assert str (types ["p1" ]) == f"bool | { __name__ } .TypeCheckingClass1 | int"
181+ assert str (types ["p2" ]) == f"float | { __name__ } .TypeCheckingClass2"
177182
178183
179184def function_type_checking_alias (p1 : type_checking_alias , p2 : "type_checking_alias" ):
@@ -183,8 +188,12 @@ def function_type_checking_alias(p1: type_checking_alias, p2: "type_checking_ali
183188def test_get_types_type_checking_alias ():
184189 types = get_types (function_type_checking_alias )
185190 assert list (types ) == ["p1" , "p2" ]
186- assert str (types ["p1" ]) == f"typing.Union[int, { __name__ } .TypeCheckingClass2, typing.List[str]]"
187- assert str (types ["p2" ]) == f"typing.Union[int, { __name__ } .TypeCheckingClass2, typing.List[str]]"
191+ if sys .version_info < (3 , 14 ):
192+ assert str (types ["p1" ]) == f"typing.Union[int, { __name__ } .TypeCheckingClass2, typing.List[str]]"
193+ assert str (types ["p2" ]) == f"typing.Union[int, { __name__ } .TypeCheckingClass2, typing.List[str]]"
194+ else :
195+ assert str (types ["p1" ]) == f"int | { __name__ } .TypeCheckingClass2 | typing.List[str]"
196+ assert str (types ["p2" ]) == f"int | { __name__ } .TypeCheckingClass2 | typing.List[str]"
188197
189198
190199def function_type_checking_optional_alias (p1 : type_checking_alias | None , p2 : Optional ["type_checking_alias" ]):
@@ -194,8 +203,12 @@ def function_type_checking_optional_alias(p1: type_checking_alias | None, p2: Op
194203def test_get_types_type_checking_optional_alias ():
195204 types = get_types (function_type_checking_optional_alias )
196205 assert list (types ) == ["p1" , "p2" ]
197- assert str (types ["p1" ]) == f"typing.Union[int, { __name__ } .TypeCheckingClass2, typing.List[str], NoneType]"
198- assert str (types ["p2" ]) == f"typing.Union[int, { __name__ } .TypeCheckingClass2, typing.List[str], NoneType]"
206+ if sys .version_info < (3 , 14 ):
207+ assert str (types ["p1" ]) == f"typing.Union[int, { __name__ } .TypeCheckingClass2, typing.List[str], NoneType]"
208+ assert str (types ["p2" ]) == f"typing.Union[int, { __name__ } .TypeCheckingClass2, typing.List[str], NoneType]"
209+ else :
210+ assert str (types ["p1" ]) == f"int | { __name__ } .TypeCheckingClass2 | typing.List[str] | None"
211+ assert str (types ["p2" ]) == f"int | { __name__ } .TypeCheckingClass2 | typing.List[str] | None"
199212
200213
201214def function_type_checking_list (p1 : List [Union ["TypeCheckingClass1" , TypeCheckingClass2 ]]):
@@ -206,7 +219,10 @@ def test_get_types_type_checking_list():
206219 types = get_types (function_type_checking_list )
207220 assert list (types ) == ["p1" ]
208221 lst = "typing.List"
209- assert str (types ["p1" ]) == f"{ lst } [typing.Union[{ __name__ } .TypeCheckingClass1, { __name__ } .TypeCheckingClass2]]"
222+ if sys .version_info < (3 , 14 ):
223+ assert str (types ["p1" ]) == f"{ lst } [typing.Union[{ __name__ } .TypeCheckingClass1, { __name__ } .TypeCheckingClass2]]"
224+ else :
225+ assert str (types ["p1" ]) == f"{ lst } [{ __name__ } .TypeCheckingClass1 | { __name__ } .TypeCheckingClass2]"
210226
211227
212228def function_type_checking_tuple (p1 : Tuple [TypeCheckingClass1 , "TypeCheckingClass2" ]):
@@ -239,7 +255,13 @@ def test_get_types_type_checking_dict():
239255 types = get_types (function_type_checking_dict )
240256 assert list (types ) == ["p1" ]
241257 dct = "typing.Dict"
242- assert str (types ["p1" ]) == f"{ dct } [str, typing.Union[{ __name__ } .TypeCheckingClass1, { __name__ } .TypeCheckingClass2]]"
258+ if sys .version_info < (3 , 14 ):
259+ assert (
260+ str (types ["p1" ])
261+ == f"{ dct } [str, typing.Union[{ __name__ } .TypeCheckingClass1, { __name__ } .TypeCheckingClass2]]"
262+ )
263+ else :
264+ assert str (types ["p1" ]) == f"{ dct } [str, { __name__ } .TypeCheckingClass1 | { __name__ } .TypeCheckingClass2]"
243265
244266
245267def function_type_checking_undefined_forward_ref (p1 : List ["Undefined" ], p2 : bool ): # type: ignore # noqa: F821
0 commit comments