tests/basics: Add tests for type-checking subclassed exc instances.

This commit is contained in:
Mike Wadsten 2020-01-13 11:52:36 -06:00 committed by Damien George
parent fe2bc92b4d
commit c3c2c37fbc
2 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,39 @@
# test subclassing exceptions and providing __new__
class Dummy(BaseException):
pass
class GoodException(BaseException):
def __new__(cls, *args, **kwargs):
print("GoodException __new__")
return Dummy(*args, **kwargs)
class BadException(BaseException):
def __new__(cls, *args, **kwargs):
print("BadException __new__")
return 1
try:
raise GoodException("good message")
except BaseException as good:
print(type(good), good.args[0])
try:
raise BadException("bad message")
except Exception as bad:
# Should be TypeError 'exceptions must derive from BaseException'
print(type(bad), bad.args[0])
try:
def gen():
yield
gen().throw(BadException)
except Exception as genbad:
# Should be TypeError 'exceptions must derive from BaseException'
print(type(genbad), genbad.args[0])

View File

@ -0,0 +1,6 @@
GoodException __new__
<class 'Dummy'> good message
BadException __new__
<class 'TypeError'> exceptions must derive from BaseException
BadException __new__
<class 'TypeError'> exceptions must derive from BaseException