summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_coroutines.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_coroutines.py')
-rw-r--r--Lib/test/test_coroutines.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/Lib/test/test_coroutines.py b/Lib/test/test_coroutines.py
index f4a9d2a..fe26199 100644
--- a/Lib/test/test_coroutines.py
+++ b/Lib/test/test_coroutines.py
@@ -1846,6 +1846,36 @@ class CoroutineTest(unittest.TestCase):
run_async(run_gen()),
([], [121]))
+ def test_comp_4_2(self):
+ async def f(it):
+ for i in it:
+ yield i
+
+ async def run_list():
+ return [i + 10 async for i in f(range(5)) if 0 < i < 4]
+ self.assertEqual(
+ run_async(run_list()),
+ ([], [11, 12, 13]))
+
+ async def run_set():
+ return {i + 10 async for i in f(range(5)) if 0 < i < 4}
+ self.assertEqual(
+ run_async(run_set()),
+ ([], {11, 12, 13}))
+
+ async def run_dict():
+ return {i + 10: i + 100 async for i in f(range(5)) if 0 < i < 4}
+ self.assertEqual(
+ run_async(run_dict()),
+ ([], {11: 101, 12: 102, 13: 103}))
+
+ async def run_gen():
+ gen = (i + 10 async for i in f(range(5)) if 0 < i < 4)
+ return [g + 100 async for g in gen]
+ self.assertEqual(
+ run_async(run_gen()),
+ ([], [111, 112, 113]))
+
def test_comp_5(self):
async def f(it):
for i in it: