diff -r 63b45c959a2a Lib/test/test_array.py --- a/Lib/test/test_array.py Sun Nov 04 07:00:04 2012 +0200 +++ b/Lib/test/test_array.py Mon Nov 05 23:43:16 2012 -0800 @@ -94,6 +94,13 @@ self.assertRaises(ValueError, array_reconstructor, array.array, "d", 16, b"a") + + def test_issue13349(self): + a = array.array('i',[1,2,3,4,5]) + i = 6 + pattern = "array\.remove\(%d\): element not in list" % i + self.assertRaisesRegexp(ValueError, pattern, a.remove, i) + def test_numbers(self): testcases = ( (['B', 'H', 'I', 'L'], UNSIGNED_INT8, '=BBBB', diff -r 63b45c959a2a Lib/test/test_deque.py --- a/Lib/test/test_deque.py Sun Nov 04 07:00:04 2012 +0200 +++ b/Lib/test/test_deque.py Mon Nov 05 23:43:16 2012 -0800 @@ -332,6 +332,12 @@ d.clear() # clear an emtpy deque self.assertEqual(list(d), []) + def test_issue13349(self): + dq = deque('abc') + item = 't' + pattern = "deque.remove\('%s'\): element not in deque" % item + self.assertRaisesRegex(ValueError, pattern, dq.remove, item) + def test_remove(self): d = deque('abcdefghcij') d.remove('c') diff -r 63b45c959a2a Lib/test/test_list.py --- a/Lib/test/test_list.py Sun Nov 04 07:00:04 2012 +0200 +++ b/Lib/test/test_list.py Mon Nov 05 23:43:16 2012 -0800 @@ -106,6 +106,12 @@ with self.assertRaises(TypeError): (3,) + L([1,2]) + def test_issue13349(self): + lst = list(range(10)) + item = 15 + pattern = "list.remove\(%d\): element not in list" % item + self.assertRaisesRegex(ValueError, pattern, lst.remove, item) + def test_main(verbose=None): support.run_unittest(ListTest) diff -r 63b45c959a2a Lib/test/test_tuple.py --- a/Lib/test/test_tuple.py Sun Nov 04 07:00:04 2012 +0200 +++ b/Lib/test/test_tuple.py Mon Nov 05 23:43:16 2012 -0800 @@ -18,6 +18,12 @@ self.assertEqual(tuple(''), ()) self.assertEqual(tuple('spam'), ('s', 'p', 'a', 'm')) + def test_issue13349(self): + tpl = (1, 2, 3) + itm = 4 + pattern = "tuple.index\(%d\): element not in tuple" % itm + self.assertRaisesRegex(ValueError, pattern, tpl.index, itm) + def test_truth(self): super().test_truth() self.assertTrue(not ()) diff -r 63b45c959a2a Lib/test/test_xml_etree.py --- a/Lib/test/test_xml_etree.py Sun Nov 04 07:00:04 2012 +0200 +++ b/Lib/test/test_xml_etree.py Mon Nov 05 23:43:16 2012 -0800 @@ -261,9 +261,6 @@ >>> element.remove(subelement) >>> serialize(element) # 5 '' - >>> element.remove(subelement) - Traceback (most recent call last): - ValueError: list.remove(x): x not in list >>> serialize(element) # 6 '' >>> element[0:0] = [subelement, subelement, subelement] @@ -1888,6 +1885,13 @@ self.assertEqual(self._ilist(doc), all_tags) self.assertEqual(self._ilist(doc, '*'), all_tags) +class TreeBasicOperationTest(unittest.TestCase): + + def test_issue13349(self): + elem = ET.XML("") + item = ET.Element("subtag") + pattern = "list.remove\(%s\): element not in list" % item + self.assertRaisesRegex(ValueError, pattern, elem.remove, item) class TreeBuilderTest(unittest.TestCase): sample1 = ('extra) { /* element has no children, so raise exception */ - PyErr_SetString( - PyExc_ValueError, - "list.remove(x): x not in list" - ); + PyErr_Format(PyExc_ValueError, "list.remove(%0.100R): element not in list", element); return NULL; } @@ -1239,10 +1236,7 @@ if (i == self->extra->length) { /* element is not in children, so raise exception */ - PyErr_SetString( - PyExc_ValueError, - "list.remove(x): x not in list" - ); + PyErr_Format(PyExc_ValueError, "list.remove(%0.100R): element not in list", element); return NULL; } diff -r 63b45c959a2a Modules/arraymodule.c --- a/Modules/arraymodule.c Sun Nov 04 07:00:04 2012 +0200 +++ b/Modules/arraymodule.c Mon Nov 05 23:43:16 2012 -0800 @@ -999,7 +999,7 @@ else if (cmp < 0) return NULL; } - PyErr_SetString(PyExc_ValueError, "array.index(x): x not in list"); + PyErr_Format(PyExc_ValueError, "array.index(%0.100R): element not in list", v); return NULL; } @@ -1041,7 +1041,7 @@ else if (cmp < 0) return NULL; } - PyErr_SetString(PyExc_ValueError, "array.remove(x): x not in list"); + PyErr_Format(PyExc_ValueError, "array.remove(%0.100R): element not in list", v); return NULL; } diff -r 63b45c959a2a Objects/listobject.c --- a/Objects/listobject.c Sun Nov 04 07:00:04 2012 +0200 +++ b/Objects/listobject.c Mon Nov 05 23:43:16 2012 -0800 @@ -2161,7 +2161,7 @@ else if (cmp < 0) return NULL; } - PyErr_Format(PyExc_ValueError, "%R is not in list", v); + PyErr_Format(PyExc_ValueError, "%0.100R not in list", v); return NULL; } @@ -2197,7 +2197,7 @@ else if (cmp < 0) return NULL; } - PyErr_SetString(PyExc_ValueError, "list.remove(x): x not in list"); + PyErr_Format(PyExc_ValueError, "list.remove(%0.100R): element not in list", v); return NULL; } diff -r 63b45c959a2a Objects/tupleobject.c --- a/Objects/tupleobject.c Sun Nov 04 07:00:04 2012 +0200 +++ b/Objects/tupleobject.c Mon Nov 05 23:43:16 2012 -0800 @@ -522,7 +522,7 @@ else if (cmp < 0) return NULL; } - PyErr_SetString(PyExc_ValueError, "tuple.index(x): x not in tuple"); + PyErr_Format(PyExc_ValueError, "tuple.index(%0.100R): element not in tuple", v); return NULL; }