aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_language.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2014-10-26 10:50:32 +1300
committerAldo Cortesi <aldo@nullcube.com>2014-10-26 10:50:32 +1300
commitfc1fc80469dca11ff0241c4b263e4b39e5506ddd (patch)
tree80432368738828a096561a0a676e82fe46f0148d /test/test_language.py
parentc00ae41486de06192865f8539da0f00985a16a90 (diff)
downloadmitmproxy-fc1fc80469dca11ff0241c4b263e4b39e5506ddd.tar.gz
mitmproxy-fc1fc80469dca11ff0241c4b263e4b39e5506ddd.tar.bz2
mitmproxy-fc1fc80469dca11ff0241c4b263e4b39e5506ddd.zip
Allow nesting of pathod response specs in pathoc specs
This opens the door to really neat, repeatable, client-side driven fuzzing, especially of proxies.
Diffstat (limited to 'test/test_language.py')
-rw-r--r--test/test_language.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/test/test_language.py b/test/test_language.py
index 0818c587..f3cfa5a9 100644
--- a/test/test_language.py
+++ b/test/test_language.py
@@ -223,6 +223,29 @@ class TestMisc:
s = v.spec()
assert s == e.parseString(s)[0].spec()
+ def test_pathodspec(self):
+ e = language.PathodSpec.expr()
+ v = e.parseString("s'200'")[0]
+ assert v.value.val == "200"
+ tutils.raises(
+ language.ParseException,
+ e.parseString,
+ "s'foo'"
+ )
+
+ v = e.parseString('s"200:b@1"')[0]
+ assert "@1" in v.spec()
+ f = v.freeze({})
+ assert "@1" not in f.spec()
+
+ r = parse_request('GET:"/foo":s"200"')
+ assert "200" in r.preamble({})
+
+ f = r.freeze({})
+ assert parse_request(f.spec())
+
+
+
def test_code(self):
e = language.Code.expr()
v = e.parseString("200")[0]
@@ -661,14 +684,12 @@ class TestResponse:
language.serve(r, s, {})
v = s.getvalue()
assert "Content-Length" in v
- assert "Date" in v
s = cStringIO.StringIO()
r = language.parse_response("400:b'foo':r")
language.serve(r, s, {})
v = s.getvalue()
assert not "Content-Length" in v
- assert not "Date" in v
def test_length(self):
def testlen(x):