D5793: tests: convert ParseError arguments to str on Python 3
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Fri Feb 1 17:14:07 UTC 2019
indygreg created this revision.
Herald added subscribers: mercurial-devel, mjpieters.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
Arguments internally are bytes. Printing the exception on Python 3
will include b'' prefixes. This test file uses a .out file, which
doesn't support conditional output. The easiest way to get this to
pass on Python 3 is to normalize the exception before printing so
there are no b'' prefixes.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D5793
AFFECTED FILES
tests/test-trusted.py
CHANGE DETAILS
diff --git a/tests/test-trusted.py b/tests/test-trusted.py
--- a/tests/test-trusted.py
+++ b/tests/test-trusted.py
@@ -222,15 +222,25 @@
f.write(b'foo')
f.close()
+# This is a hack to remove b'' prefixes from ParseError.__bytes__ on
+# Python 3.
+def normalizeparseerror(e):
+ if pycompat.ispy3:
+ args = [a.decode('utf-8') for a in e.args]
+ else:
+ args = e.args
+
+ return error.ParseError(*args)
+
try:
testui(user=b'abc', group=b'def', silent=True)
except error.ParseError as inst:
- bprint(inst)
+ bprint(normalizeparseerror(inst))
try:
testui(debug=True, silent=True)
except error.ParseError as inst:
- bprint(inst)
+ bprint(normalizeparseerror(inst))
print()
bprint(b'# access typed information')
To: indygreg, #hg-reviewers
Cc: mjpieters, mercurial-devel
More information about the Mercurial-devel
mailing list