mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			943 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			943 B
		
	
	
	
		
			Python
		
	
	
	
	
	
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()
 |