PageRenderTime 50ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/pypy/translator/oosupport/test_template/exception.py

https://github.com/woodrow/pyoac
Python | 51 lines | 45 code | 6 blank | 0 comment | 10 complexity | e00b7a9886beaa11864e5d7062c92f14 MD5 | raw file
  1. import py
  2. from pypy.rpython.test.test_exception \
  3. import BaseTestException as RBaseTestException
  4. class BaseTestException(RBaseTestException):
  5. def test_nested_try(self):
  6. def helper(x):
  7. if x == 0:
  8. raise ValueError
  9. def dummy():
  10. pass
  11. def fn(x):
  12. try:
  13. try:
  14. helper(x)
  15. finally:
  16. dummy()
  17. except ValueError, e:
  18. raise
  19. self.interpret_raises(ValueError, fn, [0])
  20. def test_exception_not_last(self):
  21. def helper(x):
  22. if x == 0:
  23. raise ValueError
  24. def fn(x):
  25. helper(x)
  26. try:
  27. helper(1)
  28. finally:
  29. return -1
  30. return x
  31. self.interpret_raises(ValueError, fn, [0])
  32. def test_missing_return_block(self):
  33. class Base:
  34. def foo(self):
  35. raise ValueError
  36. class Derived(Base):
  37. def foo(self):
  38. return 42
  39. def fn(x):
  40. if x:
  41. obj = Base()
  42. else:
  43. obj = Derived()
  44. return obj.foo()
  45. assert self.interpret(fn, [0]) == 42