0
次の単体テストが失敗し、コンテキストマネージャが例外を正しく渡すのはなぜですか?私のpython 3.Pythonコンテキストマネージャ例外を渡さない
test.pyを使用しています:
class test(object):
def __enter__(self):
pass
def __exit__(self, *args):
return args
test_test.py:
import test
import unittest
class TestTest(unittest.TestCase):
def test_test(self):
with self.assertRaises(OverflowError):
with test.test():
raise OverflowError()
if __name__ == '__main__':
unittest.main()
は、ユニットテストを実行すると、私はOverflowErrorをが発生していないといったエラーが発生します。なぜこれが起こり、コンテキストマネージャが例外を適切に伝播するためには何が必要なのでしょうか?
なぜあなたは 'return args'をやっているのですか?あなたは何をすべきだと思いましたか? – user2357112
何とか価値があるとはいえ、何とか私のコンテキストマネージャーの前のバージョンがコンテキスト本体内の 'return'ステートメントの値を食べていると私は確信していました。また何らかの形で、 'return'がその時に正しい振る舞いをするように私のコードを壊したと付け加えます。 –