diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-06-09 10:57:00 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-06-09 10:57:00 +1200 |
commit | e78b48ab20a7250ccb50c878183ae68ea1748c40 (patch) | |
tree | 19585f7ef5358a6060c74a54662f4d7a6937de05 /test/tutils.py | |
parent | 7a312546f3185a2cff36a4f422c852b15b182140 (diff) | |
download | mitmproxy-e78b48ab20a7250ccb50c878183ae68ea1748c40.tar.gz mitmproxy-e78b48ab20a7250ccb50c878183ae68ea1748c40.tar.bz2 mitmproxy-e78b48ab20a7250ccb50c878183ae68ea1748c40.zip |
Start conversion to nose.
RIP pry.
Diffstat (limited to 'test/tutils.py')
-rw-r--r-- | test/tutils.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/tutils.py b/test/tutils.py index 8ebb1ecd..c46221a9 100644 --- a/test/tutils.py +++ b/test/tutils.py @@ -133,3 +133,42 @@ class ProxTest(libpry.AutoTree): pthread = self.findAttr("proxy") return pthread.tmaster.log + + +def raises(exc, obj, *args, **kwargs): + """ + Assert that a callable raises a specified exception. + + :exc An exception class or a string. If a class, assert that an + exception of this type is raised. If a string, assert that the string + occurs in the string representation of the exception, based on a + case-insenstivie match. + + :obj A callable object. + + :args Arguments to be passsed to the callable. + + :kwargs Arguments to be passed to the callable. + """ + try: + apply(obj, args, kwargs) + except Exception, v: + if isinstance(exc, basestring): + if exc.lower() in str(v).lower(): + return + else: + raise AssertionError( + "Expected %s, but caught %s"%( + repr(str(exc)), v + ) + ) + else: + if isinstance(v, exc): + return + else: + raise AssertionError( + "Expected %s, but caught %s %s"%( + exc.__name__, v.__class__.__name__, str(v) + ) + ) + raise AssertionError("No exception raised.") |