[Python-checkins] python/nondist/sandbox/setobj setobject.c, 1.20, 1.21 test_set.py, 1.20, 1.21

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Sat Nov 15 17:54:05 EST 2003


Update of /cvsroot/python/python/nondist/sandbox/setobj
In directory sc8-pr-cvs1:/tmp/cvs-serv24218
Modified Files:
	setobject.c test_set.py 
Log Message:
Make sure the single argument methods also check for unhashable arguments.
Index: setobject.c
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setobj/setobject.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** setobject.c	15 Nov 2003 22:36:20 -0000	1.20
--- setobject.c	15 Nov 2003 22:54:03 -0000	1.21
***************
*** 760,764 ****
 {
 	if (PyDict_DelItem(so->data, item) == -1)
! 		PyErr_Clear();
 	Py_INCREF(Py_None);
 	return Py_None;
--- 760,767 ----
 {
 	if (PyDict_DelItem(so->data, item) == -1)
! 		if (PyErr_ExceptionMatches(PyExc_KeyError))
! 			PyErr_Clear();
! 		else
! 			return NULL;
 	Py_INCREF(Py_None);
 	return Py_None;
Index: test_set.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setobj/test_set.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** test_set.py	15 Nov 2003 22:36:20 -0000	1.20
--- test_set.py	15 Nov 2003 22:54:03 -0000	1.21
***************
*** 40,43 ****
--- 40,44 ----
 for c in self.letters:
 self.assertEqual(c in self.s, c in self.d)
+ self.assertRaises(TypeError, self.s.__contains__, [[]])
 
 def test_copy(self):
***************
*** 167,170 ****
--- 168,172 ----
 self.s.add('Q')
 self.assert_('Q' in self.s)
+ self.assertRaises(TypeError, self.s.add, [])
 
 def test_remove(self):
***************
*** 172,175 ****
--- 174,178 ----
 self.assert_('a' not in self.s)
 self.assertRaises(KeyError, self.s.remove, 'Q')
+ self.assertRaises(TypeError, self.s.remove, [])
 
 def test_discard(self):
***************
*** 177,180 ****
--- 180,184 ----
 self.assert_('a' not in self.s)
 self.s.discard('Q')
+ self.assertRaises(TypeError, self.s.discard, [])
 
 def test_pop(self):


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /