Merged in bubenkoff/pytest/test_for_issue_604 (pull request #220)
Escape % character in the assertion message
This commit is contained in:
commit
b6475b058f
|
@ -13,6 +13,8 @@ Unreleased
|
||||||
at the beginning of strings and even that is deprecated. Use "not" instead.
|
at the beginning of strings and even that is deprecated. Use "not" instead.
|
||||||
This should allow to pick parametrized tests where "-" appeared in the parameter.
|
This should allow to pick parametrized tests where "-" appeared in the parameter.
|
||||||
|
|
||||||
|
- fix issue604: Escape % character in the assertion message.
|
||||||
|
|
||||||
2.6.3
|
2.6.3
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|
|
@ -373,7 +373,7 @@ def _format_assertmsg(obj):
|
||||||
t = py.builtin.text
|
t = py.builtin.text
|
||||||
else:
|
else:
|
||||||
t = py.builtin.bytes
|
t = py.builtin.bytes
|
||||||
s = s.replace(t("\n"), t("\n~"))
|
s = s.replace(t("\n"), t("\n~")).replace(t("%"), t("%%"))
|
||||||
if is_repr:
|
if is_repr:
|
||||||
s = s.replace(t("\\n"), t("\n~"))
|
s = s.replace(t("\\n"), t("\n~"))
|
||||||
return s
|
return s
|
||||||
|
|
|
@ -172,6 +172,18 @@ class TestAssertionRewrite:
|
||||||
"*assert 1 == 2*",
|
"*assert 1 == 2*",
|
||||||
])
|
])
|
||||||
|
|
||||||
|
def test_assertion_message_escape(self, testdir):
|
||||||
|
testdir.makepyfile("""
|
||||||
|
def test_foo():
|
||||||
|
assert 1 == 2, 'To be escaped: %'
|
||||||
|
""")
|
||||||
|
result = testdir.runpytest()
|
||||||
|
assert result.ret == 1
|
||||||
|
result.stdout.fnmatch_lines([
|
||||||
|
"*AssertionError: To be escaped: %",
|
||||||
|
"*assert 1 == 2",
|
||||||
|
])
|
||||||
|
|
||||||
def test_boolop(self):
|
def test_boolop(self):
|
||||||
def f():
|
def f():
|
||||||
f = g = False
|
f = g = False
|
||||||
|
|
Loading…
Reference in New Issue