Skip to content

Commit ca1b8e3

Browse files
committed
add some tests
1 parent 45c3eb8 commit ca1b8e3

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

Lib/test/test_typing.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2353,6 +2353,62 @@ def test_forward_equality(self):
23532353
self.assertEqual(fr, typing.ForwardRef('int'))
23542354
self.assertNotEqual(List['int'], List[int])
23552355

2356+
def test_forward_equality_gth(self):
2357+
c1 = typing.ForwardRef('C')
2358+
c1_gth = typing.ForwardRef('C')
2359+
c2 = typing.ForwardRef('C')
2360+
c2_gth = typing.ForwardRef('C')
2361+
2362+
class C:
2363+
pass
2364+
def foo(a: c1_gth, b: c2_gth):
2365+
pass
2366+
2367+
self.assertEqual(get_type_hints(foo, globals(), locals()), {'a': C, 'b': C})
2368+
self.assertEqual(c1, c2)
2369+
self.assertEqual(c1, c1_gth)
2370+
self.assertEqual(c1_gth, c2_gth)
2371+
self.assertEqual(Union[c1], Union[c1_gth])
2372+
self.assertEqual(Union[c1, c1_gth, c2, c2_gth], Union[c1])
2373+
2374+
def test_forward_equality_hash(self):
2375+
c1 = typing.ForwardRef('int')
2376+
c1_gth = typing.ForwardRef('int')
2377+
c2 = typing.ForwardRef('int')
2378+
c2_gth = typing.ForwardRef('int')
2379+
2380+
def foo(a: c1_gth, b: c2_gth):
2381+
pass
2382+
get_type_hints(foo, globals(), locals())
2383+
2384+
self.assertEqual(hash(c1), hash(c2))
2385+
self.assertEqual(hash(c1_gth), hash(c2_gth))
2386+
self.assertNotEqual(hash(c1), hash(c1_gth))
2387+
2388+
def test_forward_equality_namespace(self):
2389+
class A:
2390+
pass
2391+
def namespace1():
2392+
a = typing.ForwardRef('A')
2393+
def fun(x: a):
2394+
pass
2395+
get_type_hints(fun, globals(), locals())
2396+
return a
2397+
2398+
def namespace2():
2399+
a = typing.ForwardRef('A')
2400+
2401+
class A:
2402+
pass
2403+
def fun(x: a):
2404+
pass
2405+
2406+
get_type_hints(fun, globals(), locals())
2407+
return a
2408+
2409+
self.assertEqual(namespace1(), namespace1())
2410+
self.assertNotEqual(namespace1(), namespace2())
2411+
23562412
def test_forward_repr(self):
23572413
self.assertEqual(repr(List['int']), "typing.List[ForwardRef('int')]")
23582414

0 commit comments

Comments
 (0)