tests/basics: Add tests for type-checking subclassed exc instances.
This commit is contained in:
parent
fe2bc92b4d
commit
c3c2c37fbc
|
@ -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])
|
|
@ -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
|
Loading…
Reference in New Issue