diff -r fb672afd0151 Lib/test/test_coroutines.py --- a/Lib/test/test_coroutines.py Mon Oct 31 20:15:48 2016 +0200 +++ b/Lib/test/test_coroutines.py Fri Nov 04 12:54:07 2016 +0200 @@ -1665,6 +1665,29 @@ class CoroutineTest(unittest.TestCase): warnings.simplefilter("error") run_async(foo()) + def test_for_tuple(self): + class Done(Exception): pass + + class AIter(tuple): + i = 0 + def __aiter__(self): + return self + async def __anext__(self): + if self.i >= len(self): + raise StopAsyncIteration + self.i += 1 + return self[self.i - 1] + + result = [] + async def foo(): + async for i in AIter('ab'): + result.append(i) + raise Done + + with self.assertRaises(Done): + foo().send(None) + self.assertEqual(result, ['a', 'b']) + def test_comp_1(self): async def f(i): return i