Revision 31e1acd3 snf-pithos-tools/pithos/tools/test.py
b/snf-pithos-tools/pithos/tools/test.py | ||
---|---|---|
74 | 74 |
#TODO unauthorized request |
75 | 75 |
def setUp(self): |
76 | 76 |
self.client = Pithos_Client(get_url(), get_auth(), get_user()) |
77 |
|
|
78 |
#keep track of initial containers |
|
79 |
self.initial_containers = self.client.list_containers() |
|
80 |
|
|
77 | 81 |
self._clean_account() |
78 | 82 |
self.invalid_client = Pithos_Client(get_url(), get_auth(), 'invalid') |
79 | 83 |
|
... | ... | |
82 | 86 |
|
83 | 87 |
#keep track of initial account meta |
84 | 88 |
self.initial_meta = self.client.retrieve_account_metadata(restricted=True) |
85 |
|
|
89 |
|
|
86 | 90 |
self.extended = { |
87 | 91 |
'container':( |
88 | 92 |
'name', |
... | ... | |
117 | 121 |
|
118 | 122 |
def _clean_account(self): |
119 | 123 |
for c in self.client.list_containers(): |
120 |
self.client.delete_container(c, delimiter='/') |
|
121 |
self.client.delete_container(c) |
|
124 |
if c not in self.initial_containers: |
|
125 |
self.client.delete_container(c, delimiter='/') |
|
126 |
self.client.delete_container(c) |
|
122 | 127 |
|
123 | 128 |
def assert_status(self, status, codes): |
124 | 129 |
l = [elem for elem in self.return_codes] |
... | ... | |
258 | 263 |
class AccountHead(BaseTestCase): |
259 | 264 |
def setUp(self): |
260 | 265 |
BaseTestCase.setUp(self) |
261 |
self.containers = ['apples', 'bananas', 'kiwis', 'oranges', 'pears'] |
|
266 |
self.containers = list(set(self.initial_containers + ['apples', 'bananas', 'kiwis', 'oranges', 'pears'])) |
|
267 |
self.containers.sort() |
|
268 |
|
|
262 | 269 |
for item in self.containers: |
263 | 270 |
self.client.create_container(item) |
264 | 271 |
|
... | ... | |
272 | 279 |
containers = self.client.list_containers() |
273 | 280 |
l = str(len(containers)) |
274 | 281 |
self.assertEqual(meta['x-account-container-count'], l) |
275 |
size = 0 |
|
282 |
size1 = 0 |
|
283 |
size2 = 0 |
|
276 | 284 |
for c in containers: |
277 | 285 |
m = self.client.retrieve_container_metadata(c) |
278 |
size = size + int(m['x-container-bytes-used']) |
|
279 |
self.assertEqual(meta['x-account-bytes-used'], str(size)) |
|
286 |
csum = sum([o['bytes'] for o in self.client.list_objects(c, format='json')]) |
|
287 |
self.assertEqual(int(m['x-container-bytes-used']), csum) |
|
288 |
size1 += int(m['x-container-bytes-used']) |
|
289 |
size2 += csum |
|
290 |
self.assertEqual(meta['x-account-bytes-used'], str(size1)) |
|
291 |
self.assertEqual(meta['x-account-bytes-used'], str(size2)) |
|
280 | 292 |
|
281 | 293 |
def test_get_account_403(self): |
282 | 294 |
self.assert_raises_fault(403, |
... | ... | |
307 | 319 |
def setUp(self): |
308 | 320 |
BaseTestCase.setUp(self) |
309 | 321 |
#create some containers |
310 |
self.containers = ['apples', 'bananas', 'kiwis', 'oranges', 'pears'] |
|
322 |
self.containers = list(set(self.initial_containers + ['apples', 'bananas', 'kiwis', 'oranges', 'pears'])) |
|
323 |
self.containers.sort() |
|
324 |
|
|
311 | 325 |
for item in self.containers: |
312 | 326 |
self.client.create_container(item) |
313 | 327 |
|
... | ... | |
351 | 365 |
xml = self.client.list_containers(limit=l, marker=m, format='xml') |
352 | 366 |
self.assert_extended(xml, 'xml', 'container', l) |
353 | 367 |
nodes = xml.getElementsByTagName('name') |
354 |
self.assertEqual(len(nodes), 1) |
|
355 |
self.assertEqual(nodes[0].childNodes[0].data, 'pears') |
|
368 |
self.assertTrue(len(nodes) <= l) |
|
369 |
names = [n.childNodes[0].data for n in nodes] |
|
370 |
self.assertTrue('pears' in names or 'pears' > name for name in names) |
|
356 | 371 |
|
357 | 372 |
def test_if_modified_since(self): |
358 | 373 |
t = datetime.datetime.utcnow() |
... | ... | |
368 | 383 |
self.assertEqual(len(c), len(self.containers) + 1) |
369 | 384 |
except Fault, f: |
370 | 385 |
self.failIf(f.status == 304) #fail if not modified |
371 |
|
|
372 |
|
|
386 |
|
|
373 | 387 |
def test_if_modified_since_invalid_date(self): |
374 | 388 |
c = self.client.list_containers(if_modified_since='') |
375 | 389 |
self.assertEqual(len(c), len(self.containers)) |
... | ... | |
412 | 426 |
class AccountPost(BaseTestCase): |
413 | 427 |
def setUp(self): |
414 | 428 |
BaseTestCase.setUp(self) |
415 |
self.containers = ['apples', 'bananas', 'kiwis', 'oranges', 'pears'] |
|
429 |
self.containers = list(set(self.initial_containers + ['apples', 'bananas', 'kiwis', 'oranges', 'pears'])) |
|
430 |
self.containers.sort() |
|
431 |
|
|
416 | 432 |
for item in self.containers: |
417 | 433 |
self.client.create_container(item) |
418 | 434 |
|
... | ... | |
779 | 795 |
class ContainerPut(BaseTestCase): |
780 | 796 |
def setUp(self): |
781 | 797 |
BaseTestCase.setUp(self) |
782 |
self.containers = ['c1', 'c2'] |
|
783 |
|
|
798 |
self.containers = list(set(self.initial_containers + ['c1', 'c2'])) |
|
799 |
self.containers.sort() |
|
800 |
|
|
784 | 801 |
def test_create(self): |
785 | 802 |
self.client.create_container(self.containers[0]) |
786 | 803 |
containers = self.client.list_containers() |
... | ... | |
795 | 812 |
self.client.create_container(self.containers[0]) |
796 | 813 |
|
797 | 814 |
policy = {'quota':100} |
798 |
self.client.set_container_policies('c1', **policy)
|
|
815 |
self.client.set_container_policies(self.containers[0], **policy)
|
|
799 | 816 |
|
800 |
meta = self.client.retrieve_container_metadata('c1')
|
|
817 |
meta = self.client.retrieve_container_metadata(self.containers[0])
|
|
801 | 818 |
self.assertTrue('x-container-policy-quota' in meta) |
802 | 819 |
self.assertEqual(meta['x-container-policy-quota'], '100') |
803 | 820 |
|
804 |
args = ['c1', 'o1']
|
|
821 |
args = [self.containers[0], 'o1']
|
|
805 | 822 |
kwargs = {'length':101} |
806 | 823 |
self.assert_raises_fault(413, self.upload_random_data, *args, **kwargs) |
807 | 824 |
|
808 | 825 |
#reset quota |
809 | 826 |
policy = {'quota':0} |
810 |
self.client.set_container_policies('c1', **policy)
|
|
827 |
self.client.set_container_policies(self.containers[0], **policy)
|
|
811 | 828 |
|
812 | 829 |
class ContainerPost(BaseTestCase): |
813 | 830 |
def setUp(self): |
... | ... | |
828 | 845 |
class ContainerDelete(BaseTestCase): |
829 | 846 |
def setUp(self): |
830 | 847 |
BaseTestCase.setUp(self) |
831 |
self.containers = ['c1', 'c2'] |
|
848 |
self.containers = list(set(self.initial_containers + ['c1', 'c2'])) |
|
849 |
self.containers.sort() |
|
850 |
|
|
832 | 851 |
for c in self.containers: |
833 | 852 |
self.client.create_container(c) |
834 | 853 |
|
... | ... | |
859 | 878 |
class ObjectGet(BaseTestCase): |
860 | 879 |
def setUp(self): |
861 | 880 |
BaseTestCase.setUp(self) |
862 |
self.containers = ['c1', 'c2'] |
|
881 |
self.containers = list(set(self.initial_containers + ['c1', 'c2'])) |
|
882 |
self.containers.sort() |
|
883 |
|
|
863 | 884 |
#create some containers |
864 | 885 |
for c in self.containers: |
865 | 886 |
self.client.create_container(c) |
... | ... | |
1371 | 1392 |
class ObjectCopy(BaseTestCase): |
1372 | 1393 |
def setUp(self): |
1373 | 1394 |
BaseTestCase.setUp(self) |
1374 |
self.containers = ['c1', 'c2'] |
|
1395 |
self.containers = list(set(self.initial_containers + ['c1', 'c2'])) |
|
1396 |
self.containers.sort() |
|
1397 |
|
|
1375 | 1398 |
for c in self.containers: |
1376 | 1399 |
self.client.create_container(c) |
1377 | 1400 |
self.obj = self.upload_random_data(self.containers[0], o_names[0]) |
... | ... | |
1456 | 1479 |
class ObjectMove(BaseTestCase): |
1457 | 1480 |
def setUp(self): |
1458 | 1481 |
BaseTestCase.setUp(self) |
1459 |
self.containers = ['c1', 'c2'] |
|
1482 |
self.containers = list(set(self.initial_containers + ['c1', 'c2'])) |
|
1483 |
self.containers.sort() |
|
1484 |
|
|
1460 | 1485 |
for c in self.containers: |
1461 | 1486 |
self.client.create_container(c) |
1462 | 1487 |
self.obj = self.upload_random_data(self.containers[0], o_names[0]) |
... | ... | |
1517 | 1542 |
class ObjectPost(BaseTestCase): |
1518 | 1543 |
def setUp(self): |
1519 | 1544 |
BaseTestCase.setUp(self) |
1520 |
self.containers = ['c1', 'c2'] |
|
1545 |
self.containers = list(set(self.initial_containers + ['c1', 'c2'])) |
|
1546 |
self.containers.sort() |
|
1547 |
|
|
1521 | 1548 |
for c in self.containers: |
1522 | 1549 |
self.client.create_container(c) |
1523 | 1550 |
self.obj = [] |
... | ... | |
1796 | 1823 |
def setUp(self): |
1797 | 1824 |
BaseTestCase.setUp(self) |
1798 | 1825 |
self.containers = ['c1', 'c2'] |
1826 |
self.containers.extend(self.initial_containers) |
|
1827 |
|
|
1799 | 1828 |
for c in self.containers: |
1800 | 1829 |
self.client.create_container(c) |
1801 | 1830 |
self.obj = self.upload_random_data(self.containers[0], o_names[0]) |
... | ... | |
1869 | 1898 |
self.client.publish_object(c, 'o2') |
1870 | 1899 |
|
1871 | 1900 |
def test_shared_public(self): |
1901 |
diff = lambda l: set(l) - set(self.initial_containers) |
|
1902 |
|
|
1872 | 1903 |
func, kwargs = self.client.list_containers, {'shared':True} |
1873 | 1904 |
l = func(**kwargs) |
1874 |
self.assertEqual(l, ['c1', 'c2'])
|
|
1905 |
self.assertEqual(set(['c1', 'c2']), diff(l))
|
|
1875 | 1906 |
self.assertEqual(l, [e['name'] for e in func(format='json', **kwargs)]) |
1876 | 1907 |
|
1877 | 1908 |
func, kwargs = self.client.list_containers, {'public':True} |
1878 | 1909 |
l = func(**kwargs) |
1879 |
self.assertEqual(l, ['c1', 'c3'])
|
|
1910 |
self.assertEqual(set(['c1', 'c3']), diff(l))
|
|
1880 | 1911 |
self.assertEqual(l, [e['name'] for e in func(format='json', **kwargs)]) |
1881 | 1912 |
|
1882 | 1913 |
func, kwargs = self.client.list_containers, {'shared':True, 'public':True} |
1883 | 1914 |
l = func(**kwargs) |
1884 |
self.assertEqual(l, ['c1', 'c2', 'c3'])
|
|
1915 |
self.assertEqual(set(['c1', 'c2', 'c3']), diff(l))
|
|
1885 | 1916 |
self.assertEqual(l, [e['name'] for e in func(format='json', **kwargs)]) |
1886 | 1917 |
|
1887 | 1918 |
|
... | ... | |
2288 | 2319 |
self.client.share_object(self.container, self.object, self.authorized) |
2289 | 2320 |
|
2290 | 2321 |
my_shared_containers = self.client.list_containers(shared=True) |
2291 |
self.assertEqual(['c'], my_shared_containers)
|
|
2322 |
self.assertTrue('c' in my_shared_containers)
|
|
2292 | 2323 |
my_shared_objects = self.client.list_objects('c', shared=True) |
2293 | 2324 |
self.assertEqual(['o'], my_shared_objects) |
2294 | 2325 |
|
Also available in: Unified diff