tests: Modify tests that print repr of an exception with 1 arg.

In Python 3.7 the behaviour of repr() of an exception with one argument
changed: it no longer prints a trailing comma in the argument list.  See
https://bugs.python.org/issue30399

This patch modifies tests that rely on this behaviour to not rely on it.
And the python34.py test is updated to include a test for this behaviour
with a .exp file.
This commit is contained in:
Damien George 2018-08-17 15:46:04 +10:00 committed by Jeff Epler
parent 4c4f81f8f2
commit 8f0147cf00
8 changed files with 12 additions and 8 deletions

View File

@ -27,7 +27,7 @@ print({1:1} == {2:1})
try:
{}[0]
except KeyError as er:
print('KeyError', er, repr(er), er.args)
print('KeyError', er, er.args)
# unsupported unary op
try:

View File

@ -1,7 +1,6 @@
print(repr(IndexError()))
print(str(IndexError()))
print(repr(IndexError("foo")))
print(str(IndexError("foo")))
a = IndexError(1, "test", [100, 200])

View File

@ -7,4 +7,4 @@ print(next(g))
try:
print(next(g))
except StopIteration as e:
print(repr(e))
print(type(e), e.args)

View File

@ -1,4 +1,4 @@
# tests that differ when running under Python 3.4 vs 3.5/3.6
# tests that differ when running under Python 3.4 vs 3.5/3.6/3.7
try:
exec
@ -36,3 +36,7 @@ test_syntax("del ()") # can't delete empty tuple (in 3.6 we can)
import sys
print(sys.version[:3])
print(sys.version_info[0], sys.version_info[1])
# from basics/exception1.py
# in 3.7 no comma is printed if there is only 1 arg (in 3.4-3.6 one is printed)
print(repr(IndexError("foo")))

View File

@ -11,3 +11,4 @@ SyntaxError
SyntaxError
3.4
3 4
IndexError('foo',)

View File

@ -7,12 +7,12 @@ print(repr(e))
print(e.args)
try:
raise MyExc("Some error")
raise MyExc("Some error", 1)
except MyExc as e:
print("Caught exception:", repr(e))
try:
raise MyExc("Some error2")
raise MyExc("Some error2", 2)
except Exception as e:
print("Caught exception:", repr(e))

View File

@ -1,7 +1,7 @@
try:
raise ValueError(534)
except ValueError as e:
print(repr(e))
print(type(e), e.args)
# Var bound in except block is automatically deleted
try:

View File

@ -9,7 +9,7 @@ def f():
print(sys.exc_info()[0:2])
try:
1/0
raise ValueError('value', 123)
except:
print(sys.exc_info()[0:2])
f()