diff --git a/libpathod/language.py b/libpathod/language.py index 7f1d8cec9..766765178 100644 --- a/libpathod/language.py +++ b/libpathod/language.py @@ -586,7 +586,8 @@ class Reason(_Component): @classmethod def expr(klass): - e = Value.copy() + e = pp.Literal("m").suppress() + e = e + Value return e.setParseAction(lambda x: klass(*x)) def values(self, settings): @@ -724,7 +725,8 @@ class Response(Message): InjectAt, ShortcutContentType, ShortcutLocation, - Raw + Raw, + Reason ) logattrs = ["code", "reason", "version", "body"] def __init__(self): @@ -749,7 +751,6 @@ class Response(Message): resp = pp.And( [ Code.expr(), - pp.Optional(Reason.expr()), pp.ZeroOrMore(Sep + atom) ] ) diff --git a/libpathod/templates/docs_lang.html b/libpathod/templates/docs_lang.html index ebed73880..f01d61fbd 100644 --- a/libpathod/templates/docs_lang.html +++ b/libpathod/templates/docs_lang.html @@ -17,17 +17,10 @@

The general form of a response is as follows:

-
code[MESSAGE]:[colon-separated list of features]

+
code:[colon-separated list of features]

- - - - - + + + + + + + + + + + - + @@ -94,13 +103,6 @@
hVALUE=VALUE - Set a header. -
bVALUE @@ -44,6 +37,21 @@
dOFFSET + Disconnect after OFFSET bytes. +
hVALUE=VALUE + Set a header. +
iOFFSET,VALUE @@ -60,9 +68,10 @@
dOFFSET mVALUE - Disconnect after OFFSET bytes. + HTTP Reason message. Automatically chosen according to + the response code if not specified.
- - - - - - + - + + + + + + diff --git a/libpathod/templates/index.html b/libpathod/templates/index.html index 3c1ba8ff2..9561fee1f 100644 --- a/libpathod/templates/index.html +++ b/libpathod/templates/index.html @@ -31,7 +31,7 @@ name="spec" class="input-medium search-query" value="{{spec}}" - placeholder="code[msg]:[features]" + placeholder="code:[features]" > go

diff --git a/libpathod/templates/response_previewform.html b/libpathod/templates/response_previewform.html index 74e213621..7f72aaeb2 100644 --- a/libpathod/templates/response_previewform.html +++ b/libpathod/templates/response_previewform.html @@ -5,7 +5,7 @@ name="spec" class="input-medium search-query" value="{{spec}}" - placeholder="code[msg]:[features]" + placeholder="code:[features]" > {% if not nocraft %} diff --git a/test/test_language.py b/test/test_language.py index 0d7c60da7..0d3f26859 100644 --- a/test/test_language.py +++ b/test/test_language.py @@ -498,11 +498,11 @@ class TestResponse: assert r.code.string() == "202" def test_response(self): - r = language.parse_response({}, "400'msg'") + r = language.parse_response({}, "400:m'msg'") assert r.code.string() == "400" assert r.reason.string() == "msg" - r = language.parse_response({}, "400'msg':b@100b") + r = language.parse_response({}, "400:m'msg':b@100b") assert r.reason.string() == "msg" assert r.body.values({}) assert str(r) @@ -514,7 +514,7 @@ class TestResponse: def test_render(self): s = cStringIO.StringIO() - r = language.parse_response({}, "400'msg'") + r = language.parse_response({}, "400:m'msg'") assert r.serve(s, {}) def test_raw(self): @@ -537,9 +537,9 @@ class TestResponse: s = cStringIO.StringIO() x.serve(s, {}) assert x.length({}, None) == len(s.getvalue()) - testlen(language.parse_response({}, "400'msg'")) - testlen(language.parse_response({}, "400'msg':h'foo'='bar'")) - testlen(language.parse_response({}, "400'msg':h'foo'='bar':b@100b")) + testlen(language.parse_response({}, "400:m'msg'")) + testlen(language.parse_response({}, "400:m'msg':h'foo'='bar'")) + testlen(language.parse_response({}, "400:m'msg':h'foo'='bar':b@100b")) def test_maximum_length(self): def testlen(x, actions): @@ -548,7 +548,7 @@ class TestResponse: x.serve(s, {}) assert m >= len(s.getvalue()) - r = language.parse_response({}, "400'msg':b@100") + r = language.parse_response({}, "400:m'msg':b@100") actions = [ language.DisconnectAt(0) diff --git a/test/test_pathod.py b/test/test_pathod.py index 3fe7e848e..30498c3a7 100644 --- a/test/test_pathod.py +++ b/test/test_pathod.py @@ -40,7 +40,6 @@ class TestTimeout(tutils.DaemonTests): # FIXME: Add float values to spec language, reduce test timeout to # increase test performance assert self.get("200:p1,1").status_code == 200 - print self.d.last_log() assert self.d.last_log()["type"] == "timeout"
hVALUE=VALUE - Set a header. -
bVALUE @@ -118,16 +120,23 @@
iOFFSET,VALUE dOFFSET - Inject the specified value at the offset. + Disconnect after OFFSET bytes.
dOFFSET hVALUE=VALUE - Disconnect after OFFSET bytes. + Set a header. +
iOFFSET,VALUE + Inject the specified value at the offset.