test_operator.py revision bb9c739806b9f0251fa4a564986e2cb5e92e766e
1a09ec19a332de34de493b2c4da2b89b46fadc370Barry Warsawimport operator 2cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drakeimport unittest 3cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 404f357cffef6d764f2f0ff2671dabde75ec250d1Barry Warsawfrom test import test_support 5cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 6cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 7cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drakeclass OperatorTestCase(unittest.TestCase): 8cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_lt(self): 9bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.lt) 10bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.lt, 1j, 2j) 11cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.lt(1, 0)) 12cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.lt(1, 0.0)) 13cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.lt(1, 1)) 14cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.lt(1, 1.0)) 15cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.lt(1, 2)) 16cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.lt(1, 2.0)) 17cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 18cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_le(self): 19bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.le) 20bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.le, 1j, 2j) 21cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.le(1, 0)) 22cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.le(1, 0.0)) 23cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.le(1, 1)) 24cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.le(1, 1.0)) 25cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.le(1, 2)) 26cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.le(1, 2.0)) 27cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 28cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_eq(self): 29bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald class C(object): 30bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald def __eq__(self, other): 31bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald raise SyntaxError 32bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.eq) 33bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(SyntaxError, operator.eq, C(), C()) 34cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.eq(1, 0)) 35cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.eq(1, 0.0)) 36cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.eq(1, 1)) 37cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.eq(1, 1.0)) 38cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.eq(1, 2)) 39cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.eq(1, 2.0)) 40cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 41cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_ne(self): 42bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald class C(object): 43bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald def __ne__(self, other): 44bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald raise SyntaxError 45bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.ne) 46bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(SyntaxError, operator.ne, C(), C()) 47cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.ne(1, 0)) 48cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.ne(1, 0.0)) 49cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.ne(1, 1)) 50cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.ne(1, 1.0)) 51cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.ne(1, 2)) 52cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.ne(1, 2.0)) 53cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 54cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_ge(self): 55bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.ge) 56bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.ge, 1j, 2j) 57cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.ge(1, 0)) 58cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.ge(1, 0.0)) 59cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.ge(1, 1)) 60cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.ge(1, 1.0)) 61cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.ge(1, 2)) 62cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.ge(1, 2.0)) 63cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 64cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_gt(self): 65bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.gt) 66bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.gt, 1j, 2j) 67cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.gt(1, 0)) 68cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.gt(1, 0.0)) 69cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.gt(1, 1)) 70cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.gt(1, 1.0)) 71cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.gt(1, 2)) 72cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.gt(1, 2.0)) 73cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 74cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_abs(self): 75bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.abs) 76bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.abs, None) 77cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.abs(-1) == 1) 78cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.abs(1) == 1) 79cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 80cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_add(self): 81bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.add) 82bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.add, None, None) 83cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.add(3, 4) == 7) 84cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 85cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_bitwise_and(self): 86bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.and_) 87bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.and_, None, None) 88cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.and_(0xf, 0xa) == 0xa) 89cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 90cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_concat(self): 91bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.concat) 92bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.concat, None, None) 93cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.concat('py', 'thon') == 'python') 94cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.concat([1, 2], [3, 4]) == [1, 2, 3, 4]) 95cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 96cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_countOf(self): 97bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.countOf) 98bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.countOf, None, None) 99cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.countOf([1, 2, 1, 3, 1, 4], 3) == 1) 100cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.countOf([1, 2, 1, 3, 1, 4], 5) == 0) 101cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 102cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_delitem(self): 103cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake a = [4, 3, 2, 1] 104bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.delitem, a) 105bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.delitem, a, None) 106cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.delitem(a, 1) is None) 107cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.assert_(a == [4, 2, 1]) 108cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 109cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_delslice(self): 110cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake a = range(10) 111bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.delslice, a) 112bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.delslice, a, None, None) 113cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.delslice(a, 2, 8) is None) 114cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.assert_(a == [0, 1, 8, 9]) 115cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 116cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_div(self): 117bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.div, 5) 118bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.div, None, None) 11954e54c6877329e105406c48490f218faff59db39Guido van Rossum self.failUnless(operator.floordiv(5, 2) == 2) 120cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 121cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_floordiv(self): 122bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.floordiv, 5) 123bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.floordiv, None, None) 124cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.floordiv(5, 2) == 2) 125cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 126cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_truediv(self): 127bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.truediv, 5) 128bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.truediv, None, None) 129cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.truediv(5, 2) == 2.5) 130cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 131cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_getitem(self): 132cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake a = range(10) 133bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.getitem) 134bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.getitem, a, None) 135cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.getitem(a, 2) == 2) 136cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 137cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_getslice(self): 138cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake a = range(10) 139bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.getslice) 140bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.getslice, a, None, None) 141cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.getslice(a, 4, 6) == [4, 5]) 142cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 143cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_indexOf(self): 144bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.indexOf) 145bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.indexOf, None, None) 146cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.indexOf([4, 3, 2, 1], 3) == 1) 147cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.assertRaises(ValueError, operator.indexOf, [4, 3, 2, 1], 0) 148cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 149cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_invert(self): 150bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.invert) 151bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.invert, None) 152cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.inv(4) == -5) 153cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 154cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_isCallable(self): 155bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.isCallable) 156cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake class C: 157cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake pass 158cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def check(self, o, v): 159cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.assert_(operator.isCallable(o) == callable(o) == v) 160cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake check(self, 4, 0) 161cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake check(self, operator.isCallable, 1) 162cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake check(self, C, 1) 163cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake check(self, C(), 0) 164cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 165cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_isMappingType(self): 166bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.isMappingType) 167cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.isMappingType(1)) 168cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.isMappingType(operator.isMappingType)) 169cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isMappingType(operator.__dict__)) 170cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isMappingType({})) 171cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 172cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_isNumberType(self): 173bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.isNumberType) 174cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isNumberType(8)) 175cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isNumberType(8j)) 176cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isNumberType(8L)) 177cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isNumberType(8.3)) 178cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.isNumberType(dir())) 179cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 180cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_isSequenceType(self): 181bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.isSequenceType) 182cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isSequenceType(dir())) 183cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isSequenceType(())) 184cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isSequenceType(xrange(10))) 185cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.isSequenceType('yeahbuddy')) 186cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.isSequenceType(3)) 187cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 188cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_lshift(self): 189bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.lshift) 190bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.lshift, None, 42) 191cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.lshift(5, 1) == 10) 192cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.lshift(5, 0) == 5) 193cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.assertRaises(ValueError, operator.lshift, 2, -1) 194cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 195cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_mod(self): 196bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.mod) 197bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.mod, None, 42) 198cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.mod(5, 2) == 1) 199cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 200cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_mul(self): 201bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.mul) 202bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.mul, None, None) 203cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.mul(5, 2) == 10) 204cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 205cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_neg(self): 206bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.neg) 207bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.neg, None) 208cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.neg(5) == -5) 209cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.neg(-5) == 5) 210cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.neg(0) == 0) 211cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.neg(-0) == 0) 212cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 213cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_bitwise_or(self): 214bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.or_) 215bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.or_, None, None) 216cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.or_(0xa, 0x5) == 0xf) 217cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 218cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_pos(self): 219bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.pos) 220bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.pos, None) 221cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.pos(5) == 5) 222cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.pos(-5) == -5) 223cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.pos(0) == 0) 224cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.pos(-0) == 0) 225cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 2265959c559df777eb61b10d986e45ed4bbf269b36dRaymond Hettinger def test_pow(self): 227bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.pow) 228bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.pow, None, None) 2295959c559df777eb61b10d986e45ed4bbf269b36dRaymond Hettinger self.failUnless(operator.pow(3,5) == 3**5) 2305959c559df777eb61b10d986e45ed4bbf269b36dRaymond Hettinger self.failUnless(operator.__pow__(3,5) == 3**5) 2315959c559df777eb61b10d986e45ed4bbf269b36dRaymond Hettinger self.assertRaises(TypeError, operator.pow, 1) 2325959c559df777eb61b10d986e45ed4bbf269b36dRaymond Hettinger self.assertRaises(TypeError, operator.pow, 1, 2, 3) 2335959c559df777eb61b10d986e45ed4bbf269b36dRaymond Hettinger 234cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_repeat(self): 235cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake a = range(3) 236bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.repeat) 237bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.repeat, a, None) 238cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.repeat(a, 2) == a+a) 239cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.repeat(a, 1) == a) 240cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.repeat(a, 0) == []) 241cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake a = (1, 2, 3) 242cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.repeat(a, 2) == a+a) 243cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.repeat(a, 1) == a) 244cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.repeat(a, 0) == ()) 245cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake a = '123' 246cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.repeat(a, 2) == a+a) 247cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.repeat(a, 1) == a) 248cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.repeat(a, 0) == '') 249cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 250cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_rshift(self): 251bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.rshift) 252bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.rshift, None, 42) 253cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.rshift(5, 1) == 2) 254cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.rshift(5, 0) == 5) 255cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.assertRaises(ValueError, operator.rshift, 2, -1) 256cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 257cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_contains(self): 258bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.contains) 259bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.contains, None, None) 260cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.contains(range(4), 2)) 261cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.contains(range(4), 5)) 262cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.sequenceIncludes(range(4), 2)) 263cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.sequenceIncludes(range(4), 5)) 264cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 265cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_setitem(self): 266cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake a = range(3) 267bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.setitem, a) 268bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.setitem, a, None, None) 269cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.setitem(a, 0, 2) is None) 270cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.assert_(a == [2, 1, 2]) 271cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.assertRaises(IndexError, operator.setitem, a, 4, 2) 272cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 273cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_setslice(self): 274cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake a = range(4) 275bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.setslice, a) 276bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.setslice, a, None, None, None) 277cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.setslice(a, 1, 3, [2, 1]) is None) 278cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.assert_(a == [0, 2, 1, 3]) 279cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 280cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_sub(self): 281bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.sub) 282bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.sub, None, None) 283cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.sub(5, 2) == 3) 284cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 285cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_truth(self): 286bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald class C(object): 287bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald def __nonzero__(self): 288bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald raise SyntaxError 289bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.truth) 290bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(SyntaxError, operator.truth, C()) 291cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.truth(5)) 292cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.truth([0])) 293cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.truth(0)) 294cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failIf(operator.truth([])) 295cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 296cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake def test_bitwise_xor(self): 297bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.xor) 298bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.xor, None, None) 299cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake self.failUnless(operator.xor(0xb, 0xc) == 0x7) 300cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 3019543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger def test_is(self): 3029543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger a = b = 'xyzpdq' 3039543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger c = a[:3] + b[3:] 304bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.is_) 3059543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger self.failUnless(operator.is_(a, b)) 3069543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger self.failIf(operator.is_(a,c)) 3079543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger 3089543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger def test_is_not(self): 3099543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger a = b = 'xyzpdq' 3109543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger c = a[:3] + b[3:] 311bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.is_not) 3129543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger self.failIf(operator.is_not(a, b)) 3139543b340066e85bb920a0655edf33e11050d7b08Raymond Hettinger self.failUnless(operator.is_not(a,c)) 314cd112f5546256a752f56b3bf6ce0ff19ff30a981Fred Drake 315166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger def test_attrgetter(self): 316166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger class A: 317166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger pass 318166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger a = A() 319166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger a.name = 'arthur' 320166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger f = operator.attrgetter('name') 321166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertEqual(f(a), 'arthur') 322166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger f = operator.attrgetter('rank') 323166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertRaises(AttributeError, f, a) 324166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger f = operator.attrgetter(2) 325166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertRaises(TypeError, f, a) 326166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertRaises(TypeError, operator.attrgetter) 327166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertRaises(TypeError, operator.attrgetter, 1, 2) 328166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger 329bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald class C(object): 330bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald def __getattr(self, name): 331bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald raise SyntaxError 332bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(AttributeError, operator.attrgetter('foo'), C()) 333bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald 334166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger def test_itemgetter(self): 335166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger a = 'ABCDE' 336166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger f = operator.itemgetter(2) 337166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertEqual(f(a), 'C') 338166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger f = operator.itemgetter(10) 339166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertRaises(IndexError, f, a) 340166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger 341bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald class C(object): 342bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald def __getitem(self, name): 343bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald raise SyntaxError 344bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald self.failUnlessRaises(TypeError, operator.itemgetter(42), C()) 345bb9c739806b9f0251fa4a564986e2cb5e92e766eWalter Dörwald 346166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger f = operator.itemgetter('name') 347166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertRaises(TypeError, f, a) 348166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertRaises(TypeError, operator.itemgetter) 349166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertRaises(TypeError, operator.itemgetter, 1, 2) 350166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger 351166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger d = dict(key='val') 352166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger f = operator.itemgetter('key') 353166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertEqual(f(d), 'val') 354166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger f = operator.itemgetter('nonkey') 355166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertRaises(KeyError, f, d) 356166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger 357166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger # example used in the docs 358166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger inventory = [('apple', 3), ('banana', 2), ('pear', 5), ('orange', 1)] 359166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger getcount = operator.itemgetter(1) 360166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger self.assertEqual(map(getcount, inventory), [3, 2, 5, 1]) 36164958a15d7c03efdc3d2eddf247666e18d1fd910Raymond Hettinger self.assertEqual(sorted(inventory, key=getcount), 362166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger [('orange', 1), ('banana', 2), ('apple', 3), ('pear', 5)]) 363166958b5df50fca05cb24be0152737edf575dbb9Raymond Hettinger 3642e2be3760ccdfd4bdde4afdd66f4078022ba3b61Fred Drakedef test_main(): 3652e2be3760ccdfd4bdde4afdd66f4078022ba3b61Fred Drake test_support.run_unittest(OperatorTestCase) 3662e2be3760ccdfd4bdde4afdd66f4078022ba3b61Fred Drake 3672e2be3760ccdfd4bdde4afdd66f4078022ba3b61Fred Drake 3682e2be3760ccdfd4bdde4afdd66f4078022ba3b61Fred Drakeif __name__ == "__main__": 3692e2be3760ccdfd4bdde4afdd66f4078022ba3b61Fred Drake test_main() 370