diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-04-28 22:54:45 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-04-28 22:54:45 +1200 |
commit | ee909e265b40743479ca2f3e8b518f76c91f83f8 (patch) | |
tree | f267a1e2c3d7d23843f67794f090892b6b4d8177 | |
parent | 2d989e2fbb8b87847c215a984bc8a010ce583a8e (diff) | |
download | mitmproxy-ee909e265b40743479ca2f3e8b518f76c91f83f8.tar.gz mitmproxy-ee909e265b40743479ca2f3e8b518f76c91f83f8.tar.bz2 mitmproxy-ee909e265b40743479ca2f3e8b518f76c91f83f8.zip |
Add a shortcut for setting Location header.
-rw-r--r-- | libpathod/rparse.py | 21 | ||||
-rw-r--r-- | test/test_rparse.py | 7 |
2 files changed, 25 insertions, 3 deletions
diff --git a/libpathod/rparse.py b/libpathod/rparse.py index 4f7cc12d..b47681cc 100644 --- a/libpathod/rparse.py +++ b/libpathod/rparse.py @@ -211,6 +211,26 @@ class ShortcutContentType: return e.setParseAction(lambda x: klass(*x)) + +class ShortcutLocation: + def __init__(self, value): + self.value = value + + def mod_response(self, settings, r): + r.headers.append( + ( + LiteralGenerator("Location"), + self.value.get_generator(settings) + ) + ) + + @classmethod + def expr(klass): + e = pp.Literal("l").suppress() + e = e + Value + return e.setParseAction(lambda x: klass(*x)) + + class Body: def __init__(self, value): self.value = value @@ -332,6 +352,7 @@ class Response: DisconnectBefore, DisconnectRandom, ShortcutContentType, + ShortcutLocation, ) version = "HTTP/1.1" code = 200 diff --git a/test/test_rparse.py b/test/test_rparse.py index 5a3cb53c..c854b0c6 100644 --- a/test/test_rparse.py +++ b/test/test_rparse.py @@ -177,9 +177,10 @@ class uDisconnects(libpry.AutoTree): assert isinstance(v, rparse.DisconnectRandom) -class uShortcutContentType(libpry.AutoTree): +class uShortcuts(libpry.AutoTree): def test_parse(self): - assert len(rparse.parse({}, "400:c'foo'").headers) == 1 + assert rparse.parse({}, "400:c'foo'").headers[0][0][:] == "Content-Type" + assert rparse.parse({}, "400:l'foo'").headers[0][0][:] == "Location" class uPauses(libpry.AutoTree): @@ -312,5 +313,5 @@ tests = [ uDisconnects(), uMisc(), uparse(), - uShortcutContentType() + uShortcuts() ] |