bpo-30399: Get rid of trailing comma in the repr of BaseException. (#1650)

This commit is contained in:
Serhiy Storchaka 2017-11-15 17:53:28 +02:00 committed by GitHub
parent aca7f574b0
commit f8a4c03ede
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 12 deletions

View File

@ -92,7 +92,7 @@ class ExceptionClassTests(unittest.TestCase):
exc = Exception(arg)
results = ([len(exc.args), 1], [exc.args[0], arg],
[str(exc), str(arg)],
[repr(exc), exc.__class__.__name__ + repr(exc.args)])
[repr(exc), '%s(%r)' % (exc.__class__.__name__, arg)])
self.interface_test_driver(results)
def test_interface_multi_arg(self):

View File

@ -497,7 +497,7 @@ class BasicTest(TestCase):
def test_bad_status_repr(self):
exc = client.BadStatusLine('')
self.assertEqual(repr(exc), '''BadStatusLine("\'\'",)''')
self.assertEqual(repr(exc), '''BadStatusLine("''")''')
def test_partial_reads(self):
# if we have Content-Length, HTTPResponse knows when to close itself,

View File

@ -418,7 +418,7 @@ class TestPEP380Operation(unittest.TestCase):
"Yielded g2 spam",
"Yielded g2 more spam",
"Finishing g2",
"g2 returned StopIteration(3,)",
"g2 returned StopIteration(3)",
"Yielded g1 eggs",
"Finishing g1",
])
@ -696,15 +696,15 @@ class TestPEP380Operation(unittest.TestCase):
"g starting",
"f resuming g",
"g returning 1",
"f caught StopIteration(1,)",
"f caught StopIteration(1)",
"g starting",
"f resuming g",
"g returning (2,)",
"f caught StopIteration((2,),)",
"f caught StopIteration((2,))",
"g starting",
"f resuming g",
"g returning StopIteration(3,)",
"f caught StopIteration(StopIteration(3,),)",
"g returning StopIteration(3)",
"f caught StopIteration(StopIteration(3))",
])
def test_send_and_return_with_value(self):
@ -741,17 +741,17 @@ class TestPEP380Operation(unittest.TestCase):
"f sending spam to g",
"g received 'spam'",
"g returning 1",
'f caught StopIteration(1,)',
'f caught StopIteration(1)',
'g starting',
'f sending spam to g',
"g received 'spam'",
'g returning (2,)',
'f caught StopIteration((2,),)',
'f caught StopIteration((2,))',
'g starting',
'f sending spam to g',
"g received 'spam'",
'g returning StopIteration(3,)',
'f caught StopIteration(StopIteration(3,),)'
'g returning StopIteration(3)',
'f caught StopIteration(StopIteration(3))'
])
def test_catching_exception_from_subgen_and_returning(self):

View File

@ -0,0 +1,2 @@
Standard repr() of BaseException with a single argument no longer contains
redundant trailing comma.

View File

@ -117,7 +117,11 @@ static PyObject *
BaseException_repr(PyBaseExceptionObject *self)
{
const char *name = _PyType_Name(Py_TYPE(self));
return PyUnicode_FromFormat("%s%R", name, self->args);
if (PyTuple_GET_SIZE(self->args) == 1)
return PyUnicode_FromFormat("%s(%R)", name,
PyTuple_GET_ITEM(self->args, 0));
else
return PyUnicode_FromFormat("%s%R", name, self->args);
}
/* Pickling support */