1
# Augmented assignment test.
3
from test.support import run_unittest
7
class AugAssignTest(unittest.TestCase):
20
self.assertEqual(x, 3.0)
22
def test_with_unpacking(self):
23
self.assertRaises(SyntaxError, compile, "x, b += 3", "<test>", "exec")
37
self.assertEqual(x[0], 3.0)
51
self.assertEqual(x[0], 3.0)
53
def testSequences(self):
58
self.assertEqual(x, [1, 2, 3, 4, 1, 2, 3, 4])
65
self.assertEqual(x, [1, 2, 1, 2, 3])
66
self.assertTrue(x is y)
68
def testCustomMethods1(self):
71
def __init__(self, value):
73
def __radd__(self, val):
75
def __add__(self, val):
76
return aug_test(self.val + val)
78
class aug_test2(aug_test):
79
def __iadd__(self, val):
80
self.val = self.val + val
83
class aug_test3(aug_test):
84
def __iadd__(self, val):
85
return aug_test3(self.val + val)
91
self.assertIsInstance(x, aug_test)
92
self.assertTrue(y is not x)
93
self.assertEqual(x.val, 11)
99
self.assertTrue(y is x)
100
self.assertEqual(x.val, 12)
106
self.assertIsInstance(x, aug_test3)
107
self.assertTrue(y is not x)
108
self.assertEqual(x.val, 13)
111
def testCustomMethods2(test_self):
115
def __add__(self, val):
116
output.append("__add__ called")
117
def __radd__(self, val):
118
output.append("__radd__ called")
119
def __iadd__(self, val):
120
output.append("__iadd__ called")
123
def __sub__(self, val):
124
output.append("__sub__ called")
125
def __rsub__(self, val):
126
output.append("__rsub__ called")
127
def __isub__(self, val):
128
output.append("__isub__ called")
131
def __mul__(self, val):
132
output.append("__mul__ called")
133
def __rmul__(self, val):
134
output.append("__rmul__ called")
135
def __imul__(self, val):
136
output.append("__imul__ called")
139
def __div__(self, val):
140
output.append("__div__ called")
141
def __rdiv__(self, val):
142
output.append("__rdiv__ called")
143
def __idiv__(self, val):
144
output.append("__idiv__ called")
147
def __floordiv__(self, val):
148
output.append("__floordiv__ called")
150
def __ifloordiv__(self, val):
151
output.append("__ifloordiv__ called")
153
def __rfloordiv__(self, val):
154
output.append("__rfloordiv__ called")
157
def __truediv__(self, val):
158
output.append("__truediv__ called")
160
def __rtruediv__(self, val):
161
output.append("__rtruediv__ called")
163
def __itruediv__(self, val):
164
output.append("__itruediv__ called")
167
def __mod__(self, val):
168
output.append("__mod__ called")
169
def __rmod__(self, val):
170
output.append("__rmod__ called")
171
def __imod__(self, val):
172
output.append("__imod__ called")
175
def __pow__(self, val):
176
output.append("__pow__ called")
177
def __rpow__(self, val):
178
output.append("__rpow__ called")
179
def __ipow__(self, val):
180
output.append("__ipow__ called")
183
def __or__(self, val):
184
output.append("__or__ called")
185
def __ror__(self, val):
186
output.append("__ror__ called")
187
def __ior__(self, val):
188
output.append("__ior__ called")
191
def __and__(self, val):
192
output.append("__and__ called")
193
def __rand__(self, val):
194
output.append("__rand__ called")
195
def __iand__(self, val):
196
output.append("__iand__ called")
199
def __xor__(self, val):
200
output.append("__xor__ called")
201
def __rxor__(self, val):
202
output.append("__rxor__ called")
203
def __ixor__(self, val):
204
output.append("__ixor__ called")
207
def __rshift__(self, val):
208
output.append("__rshift__ called")
209
def __rrshift__(self, val):
210
output.append("__rrshift__ called")
211
def __irshift__(self, val):
212
output.append("__irshift__ called")
215
def __lshift__(self, val):
216
output.append("__lshift__ called")
217
def __rlshift__(self, val):
218
output.append("__rlshift__ called")
219
def __ilshift__(self, val):
220
output.append("__ilshift__ called")
272
test_self.assertEqual(output, '''\
312
run_unittest(AugAssignTest)
314
if __name__ == '__main__':