Revision 0c6ab9df snf-pithos-app/pithos/api/test/objects.py

b/snf-pithos-app/pithos/api/test/objects.py
41 41
from pithos.api.test import (PithosAPITest, pithos_settings,
42 42
                             AssertMappingInvariant, AssertUUidInvariant,
43 43
                             TEST_BLOCK_SIZE, TEST_HASH_ALGORITHM,
44
                             DATE_FORMATS)
44
                             DATE_FORMATS, pithos_test_settings)
45 45
from pithos.api.test.util import (md5_hash, merkle, strnextling,
46 46
                                  get_random_data, get_random_name)
47 47

  
......
924 924
                         get_random_name(), self.object))
925 925
        self.assertEqual(r.status_code, 404)
926 926

  
927
    @pithos_test_settings(API_LIST_LIMIT=10)
927 928
    def test_copy_dir(self):
928 929
        folder = self.create_folder(self.container)[0]
929 930
        subfolder = self.create_folder(
930 931
            self.container, oname='%s/%s' % (folder, get_random_name()))[0]
931 932
        objects = [subfolder]
932 933
        append = objects.append
933
        append(self.upload_object(self.container,
934
                                  '%s/%s' % (folder, get_random_name()),
935
                                  depth='1')[0])
936
        append(self.upload_object(self.container,
937
                                  '%s/%s' % (subfolder, get_random_name()),
938
                                  depth='2')[0])
934
        for i in range(11):
935
            append(self.upload_object(self.container,
936
                                      '%s/%d' % (folder, i),
937
                                      depth='1')[0])
939 938
        other = self.upload_object(self.container, strnextling(folder))[0]
940 939

  
941 940
        # copy dir
......
1006 1005
        r = self.head(url)
1007 1006
        self.assertEqual(r.status_code, 404)
1008 1007

  
1008
    @pithos_test_settings(API_LIST_LIMIT=10)
1009 1009
    def test_move_dir(self):
1010 1010
        folder = self.create_folder(self.container)[0]
1011 1011
        subfolder = self.create_folder(
1012 1012
            self.container, oname='%s/%s' % (folder, get_random_name()))[0]
1013 1013
        objects = [subfolder]
1014 1014
        append = objects.append
1015
        append(self.upload_object(self.container,
1016
                                  '%s/%s' % (folder, get_random_name()),
1017
                                  depth='1')[0])
1018
        append(self.upload_object(self.container,
1019
                                  '%s/%s' % (subfolder, get_random_name()),
1020
                                  depth='1')[0])
1015
        for i in range(11):
1016
            append(self.upload_object(self.container,
1017
                                      '%s/%d' % (folder, i),
1018
                                      depth='1')[0])
1021 1019
        other = self.upload_object(self.container, strnextling(folder))[0]
1022 1020

  
1023 1021
        # move dir
......
1212 1210
            self.assertTrue('X-Object-Hash' in r)
1213 1211
            self.assertEqual(r['X-Object-Hash'], self.etag)
1214 1212

  
1215
                        # assert source object still exists
1213
            # assert source object still exists
1216 1214
            url = join_urls(self.pithos_path, self.user, self.container,
1217 1215
                            self.object)
1218 1216
            r = self.head(url)
......
1229 1227
            self.assertTrue('X-Object-Hash' in r)
1230 1228
            self.assertEqual(r['X-Object-Hash'], self.etag)
1231 1229

  
1230
    @pithos_test_settings(API_LIST_LIMIT=10)
1231
    def test_copy_dir_contents(self):
1232
        folder = self.create_folder(self.container)[0]
1233
        subfolder = self.create_folder(
1234
            self.container, oname='%s/%s' % (folder, get_random_name()))[0]
1235
        objects = [subfolder]
1236
        append = objects.append
1237
        for i in range(11):
1238
            append(self.upload_object(self.container,
1239
                                      '%s/%d' % (folder, i),
1240
                                      depth='1')[0])
1241
        other = self.upload_object(self.container, strnextling(folder))[0]
1242

  
1243
        # copy dir
1244
        url = join_urls(self.pithos_path, self.user, self.container,
1245
                        folder)
1246
        copy_folder = self.create_folder(self.container)[0]
1247
        r = self.copy('%s?delimiter=/' % url,
1248
                      HTTP_X_OBJECT_META_TEST='testcopy',
1249
                      HTTP_DESTINATION='/%s/%s' % (self.container,
1250
                                                   copy_folder))
1251
        self.assertEqual(r.status_code, 201)
1252

  
1253
        for obj in objects:
1254
            # assert object exists
1255
            url = join_urls(self.pithos_path, self.user, self.container,
1256
                            obj.replace(folder, copy_folder))
1257
            r = self.head(url)
1258
            self.assertEqual(r.status_code, 200)
1259

  
1260
        # assert other has not been created under copy folder
1261
        url = join_urls(self.pithos_path, self.user, self.container,
1262
                        '%s/%s' % (copy_folder,
1263
                                   other.replace(folder, copy_folder)))
1264
        r = self.head(url)
1265
        self.assertEqual(r.status_code, 404)
1266

  
1232 1267
    def test_copy_to_other_account(self):
1233 1268
        # create a container under alice account
1234 1269
        cname = self.create_container(user='alice')[0]
......
1347 1382
        r = self.head(url)
1348 1383
        self.assertEqual(r.status_code, 404)
1349 1384

  
1385
    @pithos_test_settings(API_LIST_LIMIT=10)
1386
    def test_move_dir_contents(self):
1387
        folder = self.create_folder(self.container)[0]
1388
        subfolder = self.create_folder(
1389
            self.container, oname='%s/%s' % (folder, get_random_name()))[0]
1390
        objects = [subfolder]
1391
        append = objects.append
1392
        for i in range(11):
1393
            append(self.upload_object(self.container,
1394
                                      '%s/%d' % (folder, i),
1395
                                      depth='1')[0])
1396
        other = self.upload_object(self.container, strnextling(folder))[0]
1397

  
1398
        # copy dir
1399
        url = join_urls(self.pithos_path, self.user, self.container, folder)
1400
        copy_folder = self.create_folder(self.container)[0]
1401
        r = self.move('%s?delimiter=/' % url,
1402
                      HTTP_X_OBJECT_META_TEST='testcopy',
1403
                      HTTP_DESTINATION='/%s/%s' % (self.container,
1404
                                                   copy_folder))
1405
        self.assertEqual(r.status_code, 201)
1406

  
1407
        for obj in objects:
1408
            # assert object exists
1409
            url = join_urls(self.pithos_path, self.user, self.container,
1410
                            obj.replace(folder, copy_folder))
1411
            r = self.head(url)
1412
            self.assertEqual(r.status_code, 200)
1413

  
1414
        # assert other has not been created under copy folder
1415
        url = join_urls(self.pithos_path, self.user, self.container,
1416
                        '%s/%s' % (copy_folder,
1417
                                   other.replace(folder, copy_folder)))
1418
        r = self.head(url)
1419
        self.assertEqual(r.status_code, 404)
1420

  
1350 1421
    def test_move_to_other_container(self):
1351 1422
        # move object to other container (not existing)
1352 1423
        cname = get_random_name()
......
1920 1991
        r = self.delete(url)
1921 1992
        self.assertEqual(r.status_code, 404)
1922 1993

  
1994
    @pithos_test_settings(API_LIST_LIMIT=10)
1923 1995
    def test_delete_dir(self):
1924 1996
        folder = self.create_folder(self.container)[0]
1925 1997
        subfolder = self.create_folder(
1926 1998
            self.container, oname='%s/%s' % (folder, get_random_name()))[0]
1927 1999
        objects = [subfolder]
1928 2000
        append = objects.append
1929
        append(self.upload_object(self.container,
1930
                                  '%s/%s' % (folder, get_random_name()),
1931
                                  depth='1')[0])
1932
        append(self.upload_object(self.container,
1933
                                  '%s/%s' % (subfolder, get_random_name()),
1934
                                  depth='2')[0])
2001
        for i in range(11):
2002
            append(self.upload_object(self.container,
2003
                                      '%s/%d' % (folder, i),
2004
                                      depth='1')[0])
1935 2005
        other = self.upload_object(self.container, strnextling(folder))[0]
1936 2006

  
1937 2007
        # move dir

Also available in: Unified diff