aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libpathod/language.py7
-rw-r--r--libpathod/templates/docs_lang.html51
-rw-r--r--libpathod/templates/index.html2
-rw-r--r--libpathod/templates/response_previewform.html2
-rw-r--r--test/test_language.py14
-rw-r--r--test/test_pathod.py1
6 files changed, 43 insertions, 34 deletions
diff --git a/libpathod/language.py b/libpathod/language.py
index 7f1d8cec..76676517 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 ebed7388..f01d61fb 100644
--- a/libpathod/templates/docs_lang.html
+++ b/libpathod/templates/docs_lang.html
@@ -17,18 +17,11 @@
<div class="tab-pane active" id="specifying_responses">
<p>The general form of a response is as follows:</p>
- <pre class="example">code[MESSAGE]:[colon-separated list of features]</pre></p>
+ <pre class="example">code:[colon-separated list of features]</pre></p>
<table class="table table-bordered">
<tbody >
<tr>
- <td> h<a href="#valuespec">VALUE</a>=<a href="#valuespec">VALUE</a> </td>
- <td>
- Set a header.
- </td>
- </tr>
-
- <tr>
<td> b<a href="#valuespec">VALUE</a> </td>
<td>
Set the body. The appropriate Content-Length header is
@@ -45,6 +38,21 @@
</tr>
<tr>
+ <td> d<a href="#offsetspec">OFFSET</a> </td>
+ <td>
+ Disconnect after OFFSET bytes.
+ </td>
+ </tr>
+
+ <tr>
+ <td> h<a href="#valuespec">VALUE</a>=<a href="#valuespec">VALUE</a> </td>
+ <td>
+ Set a header.
+ </td>
+ </tr>
+
+
+ <tr>
<td> i<a href="#offsetspec">OFFSET</a>,<a href="#valuespec">VALUE</a> </td>
<td>
Inject the specified value at the offset.
@@ -60,9 +68,10 @@
</tr>
<tr>
- <td> d<a href="#offsetspec">OFFSET</a> </td>
+ <td> m<a href="#valuespec">VALUE</a> </td>
<td>
- Disconnect after OFFSET bytes.
+ HTTP Reason message. Automatically chosen according to
+ the response code if not specified.
</td>
</tr>
@@ -95,13 +104,6 @@
<table class="table table-bordered">
<tbody >
<tr>
- <td> h<a href="#valuespec">VALUE</a>=<a href="#valuespec">VALUE</a> </td>
- <td>
- Set a header.
- </td>
- </tr>
-
- <tr>
<td> b<a href="#valuespec">VALUE</a> </td>
<td>
Set the body. The appropriate Content-Length header is
@@ -118,16 +120,23 @@
</tr>
<tr>
- <td> i<a href="#offsetspec">OFFSET</a>,<a href="#valuespec">VALUE</a> </td>
+ <td> d<a href="#offsetspec">OFFSET</a> </td>
<td>
- Inject the specified value at the offset.
+ Disconnect after OFFSET bytes.
</td>
</tr>
<tr>
- <td> d<a href="#offsetspec">OFFSET</a> </td>
+ <td> h<a href="#valuespec">VALUE</a>=<a href="#valuespec">VALUE</a> </td>
<td>
- Disconnect after OFFSET bytes.
+ Set a header.
+ </td>
+ </tr>
+
+ <tr>
+ <td> i<a href="#offsetspec">OFFSET</a>,<a href="#valuespec">VALUE</a> </td>
+ <td>
+ Inject the specified value at the offset.
</td>
</tr>
diff --git a/libpathod/templates/index.html b/libpathod/templates/index.html
index 3c1ba8ff..9561fee1 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]"
>
<a id="gopublic" class="btn">go</a>
</p>
diff --git a/libpathod/templates/response_previewform.html b/libpathod/templates/response_previewform.html
index 74e21362..7f72aaeb 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]"
>
<input type="submit" class="btn" value="preview">
{% if not nocraft %}
diff --git a/test/test_language.py b/test/test_language.py
index 0d7c60da..0d3f2685 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 3fe7e848..30498c3a 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"