[Python-checkins] python/dist/src/Lib/test test_operator.py, 1.11, 1.12

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Mon Dec 1 08:18:41 EST 2003


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv29352/Lib/test
Modified Files:
	test_operator.py 
Log Message:
As discussed on python-dev, added two extractor functions to the
operator module.
Index: test_operator.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_operator.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** test_operator.py	18 Jan 2003 23:22:20 -0000	1.11
--- test_operator.py	1 Dec 2003 13:18:39 -0000	1.12
***************
*** 228,231 ****
--- 228,270 ----
 self.failUnless(operator.is_not(a,c))
 
+ def test_attrgetter(self):
+ class A:
+ pass
+ a = A()
+ a.name = 'arthur'
+ f = operator.attrgetter('name')
+ self.assertEqual(f(a), 'arthur')
+ f = operator.attrgetter('rank')
+ self.assertRaises(AttributeError, f, a)
+ f = operator.attrgetter(2)
+ self.assertRaises(TypeError, f, a)
+ self.assertRaises(TypeError, operator.attrgetter)
+ self.assertRaises(TypeError, operator.attrgetter, 1, 2)
+ 
+ def test_itemgetter(self):
+ a = 'ABCDE'
+ f = operator.itemgetter(2)
+ self.assertEqual(f(a), 'C')
+ f = operator.itemgetter(10)
+ self.assertRaises(IndexError, f, a)
+ 
+ f = operator.itemgetter('name')
+ self.assertRaises(TypeError, f, a)
+ self.assertRaises(TypeError, operator.itemgetter)
+ self.assertRaises(TypeError, operator.itemgetter, 1, 2)
+ 
+ d = dict(key='val')
+ f = operator.itemgetter('key')
+ self.assertEqual(f(d), 'val')
+ f = operator.itemgetter('nonkey')
+ self.assertRaises(KeyError, f, d)
+ 
+ # example used in the docs
+ inventory = [('apple', 3), ('banana', 2), ('pear', 5), ('orange', 1)]
+ getcount = operator.itemgetter(1)
+ self.assertEqual(map(getcount, inventory), [3, 2, 5, 1])
+ self.assertEqual(list.sorted(inventory, key=getcount),
+ [('orange', 1), ('banana', 2), ('apple', 3), ('pear', 5)])
+ 
 def test_main():
 test_support.run_unittest(OperatorTestCase)


More information about the Python-checkins mailing list

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