aboutsummaryrefslogtreecommitdiffstats
path: root/test/tutils.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-06-09 10:57:00 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-06-09 10:57:00 +1200
commite78b48ab20a7250ccb50c878183ae68ea1748c40 (patch)
tree19585f7ef5358a6060c74a54662f4d7a6937de05 /test/tutils.py
parent7a312546f3185a2cff36a4f422c852b15b182140 (diff)
downloadmitmproxy-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.py39
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.")