|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
import warnings
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
__unittest=True
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
class _AssertWarnsContext(object):
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
def __init__(self, warningtype, testcase, msg=''):
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
self.warningtype = warningtype
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
warnings.filterwarnings('error')
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
self.failureException = testcase.failureException
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
def __enter__(self):
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
return self
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
def __exit__(self, exc_type, exc_value, tb):
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
if exc_type is None:
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
try:
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
exc_name = self.warningtype.__name__
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
except AttributeError:
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
exc_name = str(self.warningtype)
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
raise self.failureException(
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
"{0} not raised".format(exc_name))
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
if not issubclass(exc_type, self.warningtype):
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
raise self.failureException('"%s" does not match "%s"' %
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
(self.warningtype.__name__, str(exc_type.__name__)))
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
return True
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
class CatchWarningsMixin(object):
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
def assertWarns(self, wrnClass, callableObj=None, *args, **kwargs):
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
context = _AssertWarnsContext(wrnClass, self)
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
if callableObj is None:
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
return context
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
with context:
|
|
![](https://seccdn.libravatar.org/avatar/d635613ede4b3412560d42b110505d92a6fa9398ec643dab6a3ce5ee8932bacb?s=16&d=retro) |
ddb17b |
callableObj(*args, **kwargs)
|