Change preview_safe to return a safe copy of the current message.
This commit is contained in:
parent
a1f782b543
commit
677f0e0580
|
@ -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)
|
||||
|
|
|
@ -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):
|
||||
"""
|
||||
|
|
|
@ -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 %}
|
||||
|
|
|
@ -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 %}
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue