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): ...@@ -92,7 +92,7 @@ class ExceptionClassTests(unittest.TestCase):
exc = Exception(arg) exc = Exception(arg)
results = ([len(exc.args), 1], [exc.args[0], arg], results = ([len(exc.args), 1], [exc.args[0], arg],
[str(exc), str(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) self.interface_test_driver(results)
def test_interface_multi_arg(self): def test_interface_multi_arg(self):
......
...@@ -497,7 +497,7 @@ class BasicTest(TestCase): ...@@ -497,7 +497,7 @@ class BasicTest(TestCase):
def test_bad_status_repr(self): def test_bad_status_repr(self):
exc = client.BadStatusLine('') exc = client.BadStatusLine('')
self.assertEqual(repr(exc), '''BadStatusLine("\'\'",)''') self.assertEqual(repr(exc), '''BadStatusLine("''")''')
def test_partial_reads(self): def test_partial_reads(self):
# if we have Content-Length, HTTPResponse knows when to close itself, # if we have Content-Length, HTTPResponse knows when to close itself,
......
...@@ -418,7 +418,7 @@ class TestPEP380Operation(unittest.TestCase): ...@@ -418,7 +418,7 @@ class TestPEP380Operation(unittest.TestCase):
"Yielded g2 spam", "Yielded g2 spam",
"Yielded g2 more spam", "Yielded g2 more spam",
"Finishing g2", "Finishing g2",
"g2 returned StopIteration(3,)", "g2 returned StopIteration(3)",
"Yielded g1 eggs", "Yielded g1 eggs",
"Finishing g1", "Finishing g1",
]) ])
...@@ -696,15 +696,15 @@ class TestPEP380Operation(unittest.TestCase): ...@@ -696,15 +696,15 @@ class TestPEP380Operation(unittest.TestCase):
"g starting", "g starting",
"f resuming g", "f resuming g",
"g returning 1", "g returning 1",
"f caught StopIteration(1,)", "f caught StopIteration(1)",
"g starting", "g starting",
"f resuming g", "f resuming g",
"g returning (2,)", "g returning (2,)",
"f caught StopIteration((2,),)", "f caught StopIteration((2,))",
"g starting", "g starting",
"f resuming g", "f resuming g",
"g returning StopIteration(3,)", "g returning StopIteration(3)",
"f caught StopIteration(StopIteration(3,),)", "f caught StopIteration(StopIteration(3))",
]) ])
def test_send_and_return_with_value(self): def test_send_and_return_with_value(self):
...@@ -741,17 +741,17 @@ class TestPEP380Operation(unittest.TestCase): ...@@ -741,17 +741,17 @@ class TestPEP380Operation(unittest.TestCase):
"f sending spam to g", "f sending spam to g",
"g received 'spam'", "g received 'spam'",
"g returning 1", "g returning 1",
'f caught StopIteration(1,)', 'f caught StopIteration(1)',
'g starting', 'g starting',
'f sending spam to g', 'f sending spam to g',
"g received 'spam'", "g received 'spam'",
'g returning (2,)', 'g returning (2,)',
'f caught StopIteration((2,),)', 'f caught StopIteration((2,))',
'g starting', 'g starting',
'f sending spam to g', 'f sending spam to g',
"g received 'spam'", "g received 'spam'",
'g returning StopIteration(3,)', 'g returning StopIteration(3)',
'f caught StopIteration(StopIteration(3,),)' 'f caught StopIteration(StopIteration(3))'
]) ])
def test_catching_exception_from_subgen_and_returning(self): 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 * ...@@ -117,7 +117,11 @@ static PyObject *
BaseException_repr(PyBaseExceptionObject *self) BaseException_repr(PyBaseExceptionObject *self)
{ {
const char *name = _PyType_Name(Py_TYPE(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 */ /* 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