Commit f8a4c03e authored by Serhiy Storchaka's avatar Serhiy Storchaka Committed by GitHub

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

parent aca7f574
......@@ -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):
......
......@@ -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,
......
......@@ -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):
......
Standard repr() of BaseException with a single argument no longer contains
redundant trailing comma.
......@@ -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 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment