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.
|
||||
This should allow to pick parametrized tests where "-" appeared in the parameter.
|
||||
|
||||
- fix issue604: Escape % character in the assertion message.
|
||||
|
||||
2.6.3
|
||||
-----------
|
||||
|
||||
|
|
|
@ -373,7 +373,7 @@ def _format_assertmsg(obj):
|
|||
t = py.builtin.text
|
||||
else:
|
||||
t = py.builtin.bytes
|
||||
s = s.replace(t("\n"), t("\n~"))
|
||||
s = s.replace(t("\n"), t("\n~")).replace(t("%"), t("%%"))
|
||||
if is_repr:
|
||||
s = s.replace(t("\\n"), t("\n~"))
|
||||
return s
|
||||
|
|
|
@ -172,6 +172,18 @@ class TestAssertionRewrite:
|
|||
"*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 f():
|
||||
f = g = False
|
||||
|
|
Loading…
Reference in New Issue