[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