11import unittest
2- from collections import deque
3- from array import array
2+
3+ from . import BaseObjectTest
4+
45
56# This is a canary to check that global variables are not made immutable
67# when others are made immutable
@@ -19,25 +20,6 @@ class MutableGlobalTest(unittest.TestCase):
1920 def test_global_mutable (self ):
2021 self .assertTrue (not isimmutable (global_canary ))
2122
22- class BaseObjectTest (unittest .TestCase ):
23- def __init__ (self , * args , obj = None , ** kwargs ):
24- unittest .TestCase .__init__ (self , * args , ** kwargs )
25- self .obj = obj
26-
27- def setUp (self ):
28- freeze (self .obj )
29-
30- def test_immutable (self ):
31- self .assertTrue (isimmutable (self .obj ))
32-
33- def test_add_attribute (self ):
34- freeze (self .obj )
35- with self .assertRaises (NotWriteableError ):
36- self .obj .new_attribute = 'value'
37-
38- def test_type_immutable (self ):
39- self .assertTrue (isimmutable (type (self .obj )))
40-
4123
4224class TestBasicObject (BaseObjectTest ):
4325 class C :
@@ -120,129 +102,6 @@ def test_sort(self):
120102 self .obj .sort ()
121103
122104
123- class TestDeque (BaseObjectTest ):
124- class C :
125- pass
126-
127- def __init__ (self , * args , ** kwargs ):
128- obj = deque ([self .C (), self .C (), 1 , "two" , None ])
129- BaseObjectTest .__init__ (self , * args , obj = obj , ** kwargs )
130-
131- def test_set_item (self ):
132- with self .assertRaises (NotWriteableError ):
133- self .obj [0 ] = None
134-
135- def test_append (self ):
136- with self .assertRaises (NotWriteableError ):
137- self .obj .append (TestList .C ())
138-
139- def test_appendleft (self ):
140- with self .assertRaises (NotWriteableError ):
141- self .obj .appendleft (TestList .C ())
142-
143- def test_extend (self ):
144- with self .assertRaises (NotWriteableError ):
145- self .obj .extend ([TestList .C ()])
146-
147- def test_extendleft (self ):
148- with self .assertRaises (NotWriteableError ):
149- self .obj .extendleft ([TestList .C ()])
150-
151- def test_insert (self ):
152- with self .assertRaises (NotWriteableError ):
153- self .obj .insert (0 , TestList .C ())
154-
155- def test_pop (self ):
156- with self .assertRaises (NotWriteableError ):
157- self .obj .pop ()
158-
159- def test_popleft (self ):
160- with self .assertRaises (NotWriteableError ):
161- self .obj .popleft ()
162-
163- def test_remove (self ):
164- with self .assertRaises (NotWriteableError ):
165- self .obj .remove (1 )
166-
167- def test_delete (self ):
168- with self .assertRaises (NotWriteableError ):
169- del self .obj [0 ]
170-
171- def test_inplace_repeat (self ):
172- with self .assertRaises (NotWriteableError ):
173- self .obj *= 2
174-
175- def test_inplace_concat (self ):
176- with self .assertRaises (NotWriteableError ):
177- self .obj += [TestList .C ()]
178-
179- def test_reverse (self ):
180- with self .assertRaises (NotWriteableError ):
181- self .obj .reverse ()
182-
183- def test_rotate (self ):
184- with self .assertRaises (NotWriteableError ):
185- self .obj .rotate (1 )
186-
187- def test_clear (self ):
188- with self .assertRaises (NotWriteableError ):
189- self .obj .clear ()
190-
191-
192- class TestArray (BaseObjectTest ):
193- def __init__ (self , * args , ** kwargs ):
194- obj = array ('i' , [1 , 2 , 3 , 4 ])
195- BaseObjectTest .__init__ (self , * args , obj = obj , ** kwargs )
196-
197- def test_set_item (self ):
198- with self .assertRaises (NotWriteableError ):
199- self .obj [0 ] = 5
200-
201- def test_set_slice (self ):
202- with self .assertRaises (NotWriteableError ):
203- self .obj [1 :3 ] = [6 , 7 ]
204-
205- def test_append (self ):
206- with self .assertRaises (NotWriteableError ):
207- self .obj .append (8 )
208-
209- def test_extend (self ):
210- with self .assertRaises (NotWriteableError ):
211- self .obj .extend (array ('i' , [9 ]))
212-
213- def test_insert (self ):
214- with self .assertRaises (NotWriteableError ):
215- self .obj .insert (0 , 10 )
216-
217- def test_pop (self ):
218- with self .assertRaises (NotWriteableError ):
219- self .obj .pop ()
220-
221- def test_remove (self ):
222- with self .assertRaises (NotWriteableError ):
223- self .obj .remove (1 )
224-
225- def test_delete (self ):
226- with self .assertRaises (NotWriteableError ):
227- del self .obj [0 ]
228-
229- def test_reverse (self ):
230- with self .assertRaises (NotWriteableError ):
231- self .obj .reverse ()
232-
233- def test_inplace_repeat (self ):
234- with self .assertRaises (NotWriteableError ):
235- self .obj *= 2
236-
237- def test_inplace_concat (self ):
238- with self .assertRaises (NotWriteableError ):
239- self .obj += array ('i' , [11 ])
240-
241- def test_byteswap (self ):
242- with self .assertRaises (NotWriteableError ):
243- self .obj .byteswap ()
244-
245-
246105class TestDict (BaseObjectTest ):
247106 class C :
248107 pass
0 commit comments