diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-07-23 16:18:47 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-07-23 16:18:47 +1200 |
commit | 773ada882dcd21bcb71d82cd69c1cd96d230c0e0 (patch) | |
tree | ed8e6adb94e4836e5034ff985f9bb237afa9d68c /test | |
parent | 3027aae142c12b123715e1cb0ecc770f00d27198 (diff) | |
download | mitmproxy-773ada882dcd21bcb71d82cd69c1cd96d230c0e0.tar.gz mitmproxy-773ada882dcd21bcb71d82cd69c1cd96d230c0e0.tar.bz2 mitmproxy-773ada882dcd21bcb71d82cd69c1cd96d230c0e0.zip |
Unit tests for most of app.py, return 404 for unknown log entry.
Diffstat (limited to 'test')
-rw-r--r-- | test/test_app.py | 23 | ||||
-rw-r--r-- | test/test_pathod.py | 55 | ||||
-rw-r--r-- | test/tutils.py | 37 |
3 files changed, 63 insertions, 52 deletions
diff --git a/test/test_app.py b/test/test_app.py new file mode 100644 index 00000000..1078b3a6 --- /dev/null +++ b/test/test_app.py @@ -0,0 +1,23 @@ +import tutils + +class TestApp(tutils.DaemonTests): + SSL = False + def test_index(self): + r = self.getpath("/") + assert r.status_code == 200 + assert r.content + + def test_docs(self): + assert self.getpath("/docs/pathod").status_code == 200 + assert self.getpath("/docs/pathoc").status_code == 200 + assert self.getpath("/docs/language").status_code == 200 + assert self.getpath("/docs/test").status_code == 200 + + def test_log(self): + assert self.getpath("/log").status_code == 200 + assert self.get("200").status_code == 200 + id = self.d.log()[0]["id"] + assert self.getpath("/log").status_code == 200 + assert self.getpath("/log/%s"%id).status_code == 200 + assert self.getpath("/log/9999999").status_code == 404 + diff --git a/test/test_pathod.py b/test/test_pathod.py index 8e1e7490..fae00ec2 100644 --- a/test/test_pathod.py +++ b/test/test_pathod.py @@ -1,21 +1,7 @@ -import requests -from libpathod import pathod, test, version, pathoc +from libpathod import pathod, version from netlib import tcp, http import tutils -class _TestApplication: - def test_anchors(self): - a = pathod.PathodApp(staticdir=None) - a.add_anchor("/foo", "200") - assert a.get_anchors() == [("/foo", "200")] - a.add_anchor("/bar", "400") - assert a.get_anchors() == [("/bar", "400"), ("/foo", "200")] - a.remove_anchor("/bar", "400") - assert a.get_anchors() == [("/foo", "200")] - a.remove_anchor("/oink", "400") - assert a.get_anchors() == [("/foo", "200")] - - class TestPathod: def test_instantiation(self): p = pathod.Pathod( @@ -40,40 +26,7 @@ class TestPathod: assert len(p.get_log()) <= p.LOGBUF -class _DaemonTests: - @classmethod - def setUpAll(self): - self.d = test.Daemon( - staticdir=tutils.test_data.path("data"), - anchors=[("/anchor/.*", "202")], - ssl = self.SSL, - sizelimit=1*1024*1024 - ) - - @classmethod - def tearDownAll(self): - self.d.shutdown() - - def setUp(self): - self.d.clear_log() - - def getpath(self, path): - scheme = "https" if self.SSL else "http" - return requests.get("%s://localhost:%s/%s"%(scheme, self.d.port, path), verify=False) - - def get(self, spec): - scheme = "https" if self.SSL else "http" - return requests.get("%s://localhost:%s/p/%s"%(scheme, self.d.port, spec), verify=False) - - def pathoc(self, spec, timeout=None): - c = pathoc.Pathoc("localhost", self.d.port) - c.connect() - if self.SSL: - c.convert_to_ssl() - if timeout: - c.settimeout(timeout) - return c.request(spec) - +class CommonTests(tutils.DaemonTests): def test_sizelimit(self): r = self.get("200:b@1g") assert r.status_code == 800 @@ -133,11 +86,11 @@ class _DaemonTests: assert rsp.status_code == 800 -class TestDaemon(_DaemonTests): +class TestDaemon(CommonTests): SSL = False -class TestDaemonSSL(_DaemonTests): +class TestDaemonSSL(CommonTests): SSL = True def test_ssl_conn_failure(self): c = tcp.TCPClient("localhost", self.d.port) diff --git a/test/tutils.py b/test/tutils.py index d5609d7b..3c1b415e 100644 --- a/test/tutils.py +++ b/test/tutils.py @@ -1,6 +1,41 @@ import tempfile, os, shutil from contextlib import contextmanager -from libpathod import utils +from libpathod import utils, test, pathoc +import requests + +class DaemonTests: + @classmethod + def setUpAll(self): + self.d = test.Daemon( + staticdir=test_data.path("data"), + anchors=[("/anchor/.*", "202")], + ssl = self.SSL, + sizelimit=1*1024*1024 + ) + + @classmethod + def tearDownAll(self): + self.d.shutdown() + + def setUp(self): + self.d.clear_log() + + def getpath(self, path): + scheme = "https" if self.SSL else "http" + return requests.get("%s://localhost:%s/%s"%(scheme, self.d.port, path), verify=False) + + def get(self, spec): + scheme = "https" if self.SSL else "http" + return requests.get("%s://localhost:%s/p/%s"%(scheme, self.d.port, spec), verify=False) + + def pathoc(self, spec, timeout=None): + c = pathoc.Pathoc("localhost", self.d.port) + c.connect() + if self.SSL: + c.convert_to_ssl() + if timeout: + c.settimeout(timeout) + return c.request(spec) |