| from __future__ import generator_stop | 
 |  | 
 | import unittest | 
 |  | 
 |  | 
 | class TestPEP479(unittest.TestCase): | 
 |     def test_stopiteration_wrapping(self): | 
 |         def f(): | 
 |             raise StopIteration | 
 |         def g(): | 
 |             yield f() | 
 |         with self.assertRaisesRegex(RuntimeError, | 
 |                                     "generator raised StopIteration"): | 
 |             next(g()) | 
 |  | 
 |     def test_stopiteration_wrapping_context(self): | 
 |         def f(): | 
 |             raise StopIteration | 
 |         def g(): | 
 |             yield f() | 
 |  | 
 |         try: | 
 |             next(g()) | 
 |         except RuntimeError as exc: | 
 |             self.assertIs(type(exc.__cause__), StopIteration) | 
 |             self.assertIs(type(exc.__context__), StopIteration) | 
 |             self.assertTrue(exc.__suppress_context__) | 
 |         else: | 
 |             self.fail('__cause__, __context__, or __suppress_context__ ' | 
 |                       'were not properly set') | 
 |  | 
 |  | 
 | if __name__ == '__main__': | 
 |     unittest.main() |