mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 18:59:04 +08:00
Add test_generator_stop.py from 3.14.3
This commit is contained in:
1 parent
c578ac0b21
commit
fcd1bb6e9b
1 file changed
+35
Vendored
+35
@@ -0,0 +1,35 @@
|
||||
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())
|
||||
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON; AssertionError: <class 'NoneType'> is not <class 'StopIteration'>
|
||||
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()
|
||||
Reference in new issue
Block a user