aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libpathod/app.py9
-rw-r--r--libpathod/language.py9
-rw-r--r--libpathod/templates/request_preview.html4
-rw-r--r--libpathod/templates/response_preview.html4
-rw-r--r--test/test_language.py6
5 files changed, 13 insertions, 19 deletions
diff --git a/libpathod/app.py b/libpathod/app.py
index 38d0be33..e073921c 100644
--- a/libpathod/app.py
+++ b/libpathod/app.py
@@ -108,7 +108,6 @@ def _preview(is_request):
section = "main",
syntaxerror = None,
error = None,
- pauses = None
)
if not spec.strip():
args["error"] = "Can't parse an empty spec."
@@ -125,16 +124,16 @@ def _preview(is_request):
return render(template, False, **args)
s = cStringIO.StringIO()
- args["pauses"] = r.preview_safe()
+ safe = r.preview_safe()
- c = app.config["pathod"].check_policy(r, app.config["pathod"].request_settings)
+ c = app.config["pathod"].check_policy(safe, app.config["pathod"].request_settings)
if c:
args["error"] = c
return render(template, False, **args)
if is_request:
- r.serve(s, app.config["pathod"].request_settings, host="example.com")
+ safe.serve(s, app.config["pathod"].request_settings, host="example.com")
else:
- r.serve(s, app.config["pathod"].request_settings)
+ safe.serve(s, app.config["pathod"].request_settings)
args["output"] = utils.escape_unprintables(s.getvalue())
return render(template, False, **args)
diff --git a/libpathod/language.py b/libpathod/language.py
index f7909b81..ba462abe 100644
--- a/libpathod/language.py
+++ b/libpathod/language.py
@@ -167,7 +167,7 @@ class FileGenerator:
class _Token(object):
"""
- A specification token.
+ A specification token. Tokens are immutable.
"""
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
@@ -646,11 +646,10 @@ class _Message(object):
def preview_safe(self):
"""
- Modify this message to be safe for previews. Returns a list of elided actions.
+ Return a copy of this message that issafe for previews.
"""
- pauses = [i for i in self.actions if isinstance(i, PauseAt)]
- #self.actions = [i for i in self.actions if not isinstance(i, PauseAt)]
- return pauses
+ tokens = [i for i in self.tokens if not isinstance(i, PauseAt)]
+ return self.__class__(tokens)
def maximum_length(self, settings, request_host):
"""
diff --git a/libpathod/templates/request_preview.html b/libpathod/templates/request_preview.html
index e4efd9d0..db08580e 100644
--- a/libpathod/templates/request_preview.html
+++ b/libpathod/templates/request_preview.html
@@ -40,9 +40,7 @@
</div>
<div class="span10">
<pre>{{ output }}</pre>
- {% if pauses %}
- <p>Note: pauses are skipped when generating previews!</p>
- {% endif %}
+ <p>Note: pauses are skipped when generating previews!</p>
</div>
</div>
{% endif %}
diff --git a/libpathod/templates/response_preview.html b/libpathod/templates/response_preview.html
index c725bcf8..bb72513d 100644
--- a/libpathod/templates/response_preview.html
+++ b/libpathod/templates/response_preview.html
@@ -40,9 +40,7 @@
</div>
<div class="span10">
<pre>{{ output }}</pre>
- {% if pauses %}
- <p>Note: pauses are skipped when generating previews!</p>
- {% endif %}
+ <p>Note: pauses are skipped when generating previews!</p>
</div>
</div>
{% endif %}
diff --git a/test/test_language.py b/test/test_language.py
index 6d9fa31d..d0f43198 100644
--- a/test/test_language.py
+++ b/test/test_language.py
@@ -606,9 +606,9 @@ class TestResponse:
def test_render(self):
r = language.parse_response({}, "400:p0,100:dr")
- assert r.actions[0].spec() == "p0,100"
- assert len(r.preview_safe()) == 1
- assert not r.actions[0].spec().startswith("p")
+ assert "p0" in r.spec()
+ s = r.preview_safe()
+ assert not "p0" in s.spec()