[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