Revision 58a6c894 pithos/backends/tests.py
b/pithos/backends/tests.py | ||
---|---|---|
46 | 46 |
self.account = 'account1' |
47 | 47 |
|
48 | 48 |
def tearDown(self): |
49 |
containers = self.b.list_containers(self.account)
|
|
49 |
containers = [x[0] for x in self.b.list_containers(self.account)]
|
|
50 | 50 |
for container in containers: |
51 | 51 |
try: |
52 | 52 |
self.b.delete_container(self.account, container) |
53 | 53 |
except IndexError: |
54 | 54 |
# container not empty |
55 |
for obj in self.b.list_objects(self.account, container):
|
|
55 |
for obj in [x[0] for x in self.b.list_objects(self.account, container)]:
|
|
56 | 56 |
self.b.delete_object(self.account, container, obj) |
57 | 57 |
self.b.delete_container(self.account, container) |
58 | 58 |
|
... | ... | |
60 | 60 |
l1 = ['images', 'movies', 'documents', 'backups'] |
61 | 61 |
for item in l1: |
62 | 62 |
self.b.put_container(self.account, item) |
63 |
l2 = self.b.list_containers(self.account)
|
|
63 |
l2 = [x[0] for x in self.b.list_containers(self.account)]
|
|
64 | 64 |
l1.sort() |
65 | 65 |
self.assertEquals(l1, l2) |
66 | 66 |
|
... | ... | |
68 | 68 |
l1 = ['apples', 'bananas', 'kiwis', 'oranges', 'pears'] |
69 | 69 |
for item in l1: |
70 | 70 |
self.b.put_container(self.account, item) |
71 |
l2 = self.b.list_containers(self.account, limit=2)
|
|
71 |
l2 = [x[0] for x in self.b.list_containers(self.account, limit=2)]
|
|
72 | 72 |
self.assertEquals(len(l2), 2) |
73 | 73 |
self.assertEquals(l1[:2], l2) |
74 | 74 |
|
75 |
l2 = self.b.list_containers(self.account, limit=2, marker='bananas')
|
|
75 |
l2 = [x[0] for x in self.b.list_containers(self.account, limit=2, marker='bananas')]
|
|
76 | 76 |
self.assertTrue(len(l2) <= 2) |
77 | 77 |
self.assertEquals(l1[2:4], l2) |
78 | 78 |
|
79 |
l2 = self.b.list_containers(self.account, limit=2, marker='oranges')
|
|
79 |
l2 = [x[0] for x in self.b.list_containers(self.account, limit=2, marker='oranges')]
|
|
80 | 80 |
self.assertTrue(len(l2) <= 2) |
81 | 81 |
self.assertEquals(l1[4:], l2) |
82 | 82 |
|
... | ... | |
133 | 133 |
self.account = 'account1' |
134 | 134 |
|
135 | 135 |
def tearDown(self): |
136 |
containers = self.b.list_containers(self.account)
|
|
136 |
containers = [x[0] for x in self.b.list_containers(self.account)]
|
|
137 | 137 |
for container in containers: |
138 | 138 |
try: |
139 | 139 |
self.b.delete_container(self.account, container) |
140 | 140 |
except IndexError: # container not empty |
141 |
for obj in self.b.list_objects(self.account, container):
|
|
141 |
for obj in [x[0] for x in self.b.list_objects(self.account, container)]:
|
|
142 | 142 |
self.b.delete_object(self.account, container, obj) |
143 | 143 |
self.b.delete_container(self.account, container) |
144 | 144 |
|
... | ... | |
147 | 147 |
|
148 | 148 |
def test_list_objects(self): |
149 | 149 |
self.b.put_container(self.account, 'container1') |
150 |
objects = self.b.list_objects(self.account, 'container1')
|
|
150 |
objects = [x[0] for x in self.b.list_objects(self.account, 'container1')]
|
|
151 | 151 |
self.assertEquals(len([]), len(objects)) |
152 | 152 |
l = [ |
153 | 153 |
{'name':'kate_beckinsale.jpg'}, |
... | ... | |
160 | 160 |
] |
161 | 161 |
for item in l: |
162 | 162 |
self.b.update_object_hashmap(self.account, 'container1', item['name'], 0, []) |
163 |
objects = self.b.list_objects(self.account, 'container1')
|
|
163 |
objects = [x[0] for x in self.b.list_objects(self.account, 'container1')]
|
|
164 | 164 |
self.assertEquals(len(l), len(objects)) |
165 | 165 |
|
166 | 166 |
def test_list_objects_with_limit_marker(self): |
... | ... | |
168 | 168 |
l = ['gala', 'grannysmith', 'honeycrisp', 'jonagold', 'reddelicious'] |
169 | 169 |
for item in l: |
170 | 170 |
self.b.update_object_hashmap(self.account, 'container1', item, 0, []) |
171 |
objects = self.b.list_objects(self.account, 'container1', limit=2)
|
|
171 |
objects = [x[0] for x in self.b.list_objects(self.account, 'container1', limit=2)]
|
|
172 | 172 |
self.assertEquals(l[:2], objects) |
173 | 173 |
|
174 |
objects = self.b.list_objects(self.account, 'container1', limit=2, marker='grannysmith')
|
|
174 |
objects = [x[0] for x in self.b.list_objects(self.account, 'container1', limit=2, marker='grannysmith')]
|
|
175 | 175 |
self.assertEquals(l[2:4], objects) |
176 | 176 |
|
177 |
objects = self.b.list_objects(self.account, 'container1', limit=2, marker='jonagold')
|
|
177 |
objects = [x[0] for x in self.b.list_objects(self.account, 'container1', limit=2, marker='jonagold')]
|
|
178 | 178 |
self.assertEquals(l[4:], objects) |
179 | 179 |
|
180 | 180 |
def test_list_pseudo_hierarchical_folders(self): |
... | ... | |
190 | 190 |
for item in l: |
191 | 191 |
self.b.update_object_hashmap(self.account, 'container1', item, 0, []) |
192 | 192 |
|
193 |
objects = self.b.list_objects(self.account, 'container1', prefix='photos/', delimiter='/')
|
|
193 |
objects = [x[0] for x in self.b.list_objects(self.account, 'container1', prefix='photos/', delimiter='/')]
|
|
194 | 194 |
self.assertEquals(['photos/animals/', 'photos/me.jpg', 'photos/plants/'], objects) |
195 | 195 |
|
196 |
objects = self.b.list_objects(self.account, 'container1', prefix='photos/animals/', delimiter='/')
|
|
196 |
objects = [x[0] for x in self.b.list_objects(self.account, 'container1', prefix='photos/animals/', delimiter='/')]
|
|
197 | 197 |
self.assertEquals(['photos/animals/cats/', 'photos/animals/dogs/'], objects) |
198 | 198 |
|
199 | 199 |
self.b.put_container(self.account, 'container2') |
200 | 200 |
l = ['photos/photo1', 'photos/photo2', 'movieobject', 'videos', 'videos/movieobj4'] |
201 | 201 |
for item in l: |
202 | 202 |
self.b.update_object_hashmap(self.account, 'container2', item, 0, []) |
203 |
objects = self.b.list_objects(self.account, 'container2', delimiter='/')
|
|
203 |
objects = [x[0] for x in self.b.list_objects(self.account, 'container2', delimiter='/')]
|
|
204 | 204 |
self.assertEquals(['movieobject', 'photos/', 'videos', 'videos/'], objects) |
205 | 205 |
|
206 | 206 |
def test_put_container(self): |
207 | 207 |
cname = 'container1' |
208 | 208 |
self.b.put_container(self.account, cname) |
209 |
self.assertTrue(cname in self.b.list_containers(self.account))
|
|
209 |
self.assertTrue(cname in [x[0] for x in self.b.list_containers(self.account)])
|
|
210 | 210 |
|
211 | 211 |
def test_put_container_twice(self): |
212 | 212 |
cname = 'container1' |
... | ... | |
217 | 217 |
cname = 'container1' |
218 | 218 |
self.b.put_container(self.account, cname) |
219 | 219 |
self.b.delete_container(self.account, cname) |
220 |
self.assertTrue(cname not in self.b.list_containers(self.account))
|
|
220 |
self.assertTrue(cname not in [x[0] for x in self.b.list_containers(self.account)])
|
|
221 | 221 |
|
222 | 222 |
def test_delete_non_exisitng_container(self): |
223 | 223 |
cname = 'container1' |
... | ... | |
248 | 248 |
self.account = 'account1' |
249 | 249 |
|
250 | 250 |
def tearDown(self): |
251 |
containers = self.b.list_containers(self.account)
|
|
251 |
containers = [x[0] for x in self.b.list_containers(self.account)]
|
|
252 | 252 |
for container in containers: |
253 | 253 |
try: |
254 | 254 |
self.b.delete_container(self.account, container) |
255 | 255 |
except IndexError: # container not empty |
256 |
for obj in self.b.list_objects(self.account, container):
|
|
256 |
for obj in [x[0] for x in self.b.list_objects(self.account, container)]:
|
|
257 | 257 |
self.b.delete_object(self.account, container, obj) |
258 | 258 |
self.b.delete_container(self.account, container) |
259 | 259 |
|
... | ... | |
328 | 328 |
self.b.put_container(self.account, dest_cname) |
329 | 329 |
self.b.update_object_meta(self.account, src_cname, src_obj, {'tag':'sfsfssf'}) |
330 | 330 |
self.b.copy_object(self.account, src_cname, src_obj, dest_cname, dest_obj) |
331 |
self.assertTrue(dest_obj in self.b.list_objects(self.account, |
|
332 |
dest_cname, |
|
333 |
prefix='photos/personal/', |
|
334 |
delimiter='/'))
|
|
331 |
self.assertTrue(dest_obj in [x[0] for x in self.b.list_objects(self.account,
|
|
332 |
dest_cname,
|
|
333 |
prefix='photos/personal/',
|
|
334 |
delimiter='/')])
|
|
335 | 335 |
# TODO: test metadata changes |
336 | 336 |
meta_tag = self.b.get_object_meta(self.account, dest_cname, dest_obj)['tag'] |
337 | 337 |
self.assertEquals(meta_tag, unicode('sfsfssf')) |
... | ... | |
347 | 347 |
self.b.put_container(self.account, cname) |
348 | 348 |
name = 'kate_beckinsale.jpg' |
349 | 349 |
self.b.update_object_hashmap(self.account, cname, name, 0, []) |
350 |
self.assertTrue(name in self.b.list_objects(self.account, cname))
|
|
350 |
self.assertTrue(name in [x[0] for x in self.b.list_objects(self.account, cname)])
|
|
351 | 351 |
|
352 | 352 |
self.b.delete_object(self.account, cname, name) |
353 |
self.assertTrue(name not in self.b.list_objects(self.account, cname))
|
|
353 |
self.assertTrue(name not in [x[0] for x in self.b.list_objects(self.account, cname)])
|
|
354 | 354 |
self.assertRaises(NameError, self.b.delete_object, self.account, cname, name) |
355 | 355 |
|
356 | 356 |
def test_get_non_existing_object_meta(self): |
Also available in: Unified diff