From: Alex Waygood Date: Tue, 14 May 2024 14:16:14 +0000 (-0400) Subject: typing tests: remove some unnecessary uses of `exec()` (#119005) X-Git-Tag: v3.14.0a1~1908 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a9328e2b6ee05c186dcc552feb92b862b4a574df;p=thirdparty%2FPython%2Fcpython.git typing tests: remove some unnecessary uses of `exec()` (#119005) --- diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index f10b0aea3cd7..64c4c497eb89 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -7060,24 +7060,16 @@ class CollectionsAbcTests(BaseTestCase): self.assertNotIsInstance(42, typing.Iterator) def test_awaitable(self): - ns = {} - exec( - "async def foo() -> typing.Awaitable[int]:\n" - " return await AwaitableWrapper(42)\n", - globals(), ns) - foo = ns['foo'] + async def foo() -> typing.Awaitable[int]: + return await AwaitableWrapper(42) g = foo() self.assertIsInstance(g, typing.Awaitable) self.assertNotIsInstance(foo, typing.Awaitable) g.send(None) # Run foo() till completion, to avoid warning. def test_coroutine(self): - ns = {} - exec( - "async def foo():\n" - " return\n", - globals(), ns) - foo = ns['foo'] + async def foo(): + return g = foo() self.assertIsInstance(g, typing.Coroutine) with self.assertRaises(TypeError): @@ -7352,10 +7344,9 @@ class CollectionsAbcTests(BaseTestCase): typing.Generator[int, int, int]() def test_async_generator(self): - ns = {} - exec("async def f():\n" - " yield 42\n", globals(), ns) - g = ns['f']() + async def f(): + yield 42 + g = f() self.assertIsSubclass(type(g), typing.AsyncGenerator) def test_no_async_generator_instantiation(self): @@ -7442,9 +7433,8 @@ class CollectionsAbcTests(BaseTestCase): def athrow(self, typ, val=None, tb=None): pass - ns = {} - exec('async def g(): yield 0', globals(), ns) - g = ns['g'] + async def g(): yield 0 + self.assertIsSubclass(G, typing.AsyncGenerator) self.assertIsSubclass(G, typing.AsyncIterable) self.assertIsSubclass(G, collections.abc.AsyncGenerator)