diff options
| author | Aldo Cortesi <aldo@nullcube.com> | 2012-06-19 09:42:32 +1200 | 
|---|---|---|
| committer | Aldo Cortesi <aldo@nullcube.com> | 2012-06-19 09:42:32 +1200 | 
| commit | b558997fd9db8406b2a24a1831d06e283dbf35a6 (patch) | |
| tree | 7e5236ae407cc8f5f1b95e407cca187fe5bddb9d /test/tutils.py | |
| download | mitmproxy-b558997fd9db8406b2a24a1831d06e283dbf35a6.tar.gz mitmproxy-b558997fd9db8406b2a24a1831d06e283dbf35a6.tar.bz2 mitmproxy-b558997fd9db8406b2a24a1831d06e283dbf35a6.zip  | |
Initial checkin.
Diffstat (limited to 'test/tutils.py')
| -rw-r--r-- | test/tutils.py | 56 | 
1 files changed, 56 insertions, 0 deletions
diff --git a/test/tutils.py b/test/tutils.py new file mode 100644 index 00000000..c8e06b96 --- /dev/null +++ b/test/tutils.py @@ -0,0 +1,56 @@ +import tempfile, os, shutil +from contextlib import contextmanager +from libpathod import utils + + +@contextmanager +def tmpdir(*args, **kwargs): +    orig_workdir = os.getcwd() +    temp_workdir = tempfile.mkdtemp(*args, **kwargs) +    os.chdir(temp_workdir) + +    yield temp_workdir + +    os.chdir(orig_workdir) +    shutil.rmtree(temp_workdir) + + +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.") + +test_data = utils.Data(__name__)  | 
