summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_augassign.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/test/test_augassign.py')
-rw-r--r--lib/python2.7/test/test_augassign.py331
1 files changed, 0 insertions, 331 deletions
diff --git a/lib/python2.7/test/test_augassign.py b/lib/python2.7/test/test_augassign.py
deleted file mode 100644
index 059e8b7..0000000
--- a/lib/python2.7/test/test_augassign.py
+++ /dev/null
@@ -1,331 +0,0 @@
-# Augmented assignment test.
-
-from test.test_support import run_unittest, check_py3k_warnings
-import unittest
-
-
-class AugAssignTest(unittest.TestCase):
- def testBasic(self):
- x = 2
- x += 1
- x *= 2
- x **= 2
- x -= 8
- x //= 5
- x %= 3
- x &= 2
- x |= 5
- x ^= 1
- x /= 2
- if 1/2 == 0:
- # classic division
- self.assertEqual(x, 3)
- else:
- # new-style division (with -Qnew)
- self.assertEqual(x, 3.0)
-
- def test_with_unpacking(self):
- self.assertRaises(SyntaxError, compile, "x, b += 3", "<test>", "exec")
-
- def testInList(self):
- x = [2]
- x[0] += 1
- x[0] *= 2
- x[0] **= 2
- x[0] -= 8
- x[0] //= 5
- x[0] %= 3
- x[0] &= 2
- x[0] |= 5
- x[0] ^= 1
- x[0] /= 2
- if 1/2 == 0:
- self.assertEqual(x[0], 3)
- else:
- self.assertEqual(x[0], 3.0)
-
- def testInDict(self):
- x = {0: 2}
- x[0] += 1
- x[0] *= 2
- x[0] **= 2
- x[0] -= 8
- x[0] //= 5
- x[0] %= 3
- x[0] &= 2
- x[0] |= 5
- x[0] ^= 1
- x[0] /= 2
- if 1/2 == 0:
- self.assertEqual(x[0], 3)
- else:
- self.assertEqual(x[0], 3.0)
-
- def testSequences(self):
- x = [1,2]
- x += [3,4]
- x *= 2
-
- self.assertEqual(x, [1, 2, 3, 4, 1, 2, 3, 4])
-
- x = [1, 2, 3]
- y = x
- x[1:2] *= 2
- y[1:2] += [1]
-
- self.assertEqual(x, [1, 2, 1, 2, 3])
- self.assertTrue(x is y)
-
- def testCustomMethods1(self):
-
- class aug_test:
- def __init__(self, value):
- self.val = value
- def __radd__(self, val):
- return self.val + val
- def __add__(self, val):
- return aug_test(self.val + val)
-
- class aug_test2(aug_test):
- def __iadd__(self, val):
- self.val = self.val + val
- return self
-
- class aug_test3(aug_test):
- def __iadd__(self, val):
- return aug_test3(self.val + val)
-
- x = aug_test(1)
- y = x
- x += 10
-
- self.assertIsInstance(x, aug_test)
- self.assertTrue(y is not x)
- self.assertEqual(x.val, 11)
-
- x = aug_test2(2)
- y = x
- x += 10
-
- self.assertTrue(y is x)
- self.assertEqual(x.val, 12)
-
- x = aug_test3(3)
- y = x
- x += 10
-
- self.assertIsInstance(x, aug_test3)
- self.assertTrue(y is not x)
- self.assertEqual(x.val, 13)
-
-
- def testCustomMethods2(test_self):
- output = []
-
- class testall:
- def __add__(self, val):
- output.append("__add__ called")
- def __radd__(self, val):
- output.append("__radd__ called")
- def __iadd__(self, val):
- output.append("__iadd__ called")
- return self
-
- def __sub__(self, val):
- output.append("__sub__ called")
- def __rsub__(self, val):
- output.append("__rsub__ called")
- def __isub__(self, val):
- output.append("__isub__ called")
- return self
-
- def __mul__(self, val):
- output.append("__mul__ called")
- def __rmul__(self, val):
- output.append("__rmul__ called")
- def __imul__(self, val):
- output.append("__imul__ called")
- return self
-
- def __div__(self, val):
- output.append("__div__ called")
- def __rdiv__(self, val):
- output.append("__rdiv__ called")
- def __idiv__(self, val):
- output.append("__idiv__ called")
- return self
-
- def __floordiv__(self, val):
- output.append("__floordiv__ called")
- return self
- def __ifloordiv__(self, val):
- output.append("__ifloordiv__ called")
- return self
- def __rfloordiv__(self, val):
- output.append("__rfloordiv__ called")
- return self
-
- def __truediv__(self, val):
- output.append("__truediv__ called")
- return self
- def __itruediv__(self, val):
- output.append("__itruediv__ called")
- return self
-
- def __mod__(self, val):
- output.append("__mod__ called")
- def __rmod__(self, val):
- output.append("__rmod__ called")
- def __imod__(self, val):
- output.append("__imod__ called")
- return self
-
- def __pow__(self, val):
- output.append("__pow__ called")
- def __rpow__(self, val):
- output.append("__rpow__ called")
- def __ipow__(self, val):
- output.append("__ipow__ called")
- return self
-
- def __or__(self, val):
- output.append("__or__ called")
- def __ror__(self, val):
- output.append("__ror__ called")
- def __ior__(self, val):
- output.append("__ior__ called")
- return self
-
- def __and__(self, val):
- output.append("__and__ called")
- def __rand__(self, val):
- output.append("__rand__ called")
- def __iand__(self, val):
- output.append("__iand__ called")
- return self
-
- def __xor__(self, val):
- output.append("__xor__ called")
- def __rxor__(self, val):
- output.append("__rxor__ called")
- def __ixor__(self, val):
- output.append("__ixor__ called")
- return self
-
- def __rshift__(self, val):
- output.append("__rshift__ called")
- def __rrshift__(self, val):
- output.append("__rrshift__ called")
- def __irshift__(self, val):
- output.append("__irshift__ called")
- return self
-
- def __lshift__(self, val):
- output.append("__lshift__ called")
- def __rlshift__(self, val):
- output.append("__rlshift__ called")
- def __ilshift__(self, val):
- output.append("__ilshift__ called")
- return self
-
- x = testall()
- x + 1
- 1 + x
- x += 1
-
- x - 1
- 1 - x
- x -= 1
-
- x * 1
- 1 * x
- x *= 1
-
- if 1/2 == 0:
- x / 1
- 1 / x
- x /= 1
- else:
- # True division is in effect, so "/" doesn't map to __div__ etc;
- # but the canned expected-output file requires that those get called.
- x.__div__(1)
- x.__rdiv__(1)
- x.__idiv__(1)
-
- x // 1
- 1 // x
- x //= 1
-
- x % 1
- 1 % x
- x %= 1
-
- x ** 1
- 1 ** x
- x **= 1
-
- x | 1
- 1 | x
- x |= 1
-
- x & 1
- 1 & x
- x &= 1
-
- x ^ 1
- 1 ^ x
- x ^= 1
-
- x >> 1
- 1 >> x
- x >>= 1
-
- x << 1
- 1 << x
- x <<= 1
-
- test_self.assertEqual(output, '''\
-__add__ called
-__radd__ called
-__iadd__ called
-__sub__ called
-__rsub__ called
-__isub__ called
-__mul__ called
-__rmul__ called
-__imul__ called
-__div__ called
-__rdiv__ called
-__idiv__ called
-__floordiv__ called
-__rfloordiv__ called
-__ifloordiv__ called
-__mod__ called
-__rmod__ called
-__imod__ called
-__pow__ called
-__rpow__ called
-__ipow__ called
-__or__ called
-__ror__ called
-__ior__ called
-__and__ called
-__rand__ called
-__iand__ called
-__xor__ called
-__rxor__ called
-__ixor__ called
-__rshift__ called
-__rrshift__ called
-__irshift__ called
-__lshift__ called
-__rlshift__ called
-__ilshift__ called
-'''.splitlines())
-
-def test_main():
- with check_py3k_warnings(("classic int division", DeprecationWarning)):
- run_unittest(AugAssignTest)
-
-if __name__ == '__main__':
- test_main()