예제 #1
0
 def setUpClass(cls):
     cls.wait_time = CUSTOM_WAIT_TIMES.get(cls.account.service, WAIT_TIME)
     cls.max_retries = 2
     cls.test_folder = utils.create_or_get_test_folder(cls.account)
     cls.test_subfolder = cls.account.folders.create(
         data={
             'parent_id': cls.test_folder.id,
             'name': 'Test Events'
         })
     cls.test_subfolder2 = cls.account.folders.create(
         data={
             'parent_id': cls.test_folder.id,
             'name': 'Test Events2'
         })
예제 #2
0
    def setUp(self):
        acc = self.account
        if acc.service in list_permissions:
            self.test_folder = utils.create_or_get_test_folder(acc)
            self.test_file = utils.create_test_file(acc)

        new_roles = {
            "*****@*****.**": "reader",
            "*****@*****.**": "writer"
        }

        if acc.service in change_folder_permissions:
            self.new_roles = new_roles
            self.test_folder.permissions.create(data=self.new_roles)

        if acc.service in change_file_permissions:
            self.new_roles = new_roles
            self.test_file.permissions.create(data=self.new_roles)
예제 #3
0
 def test_mult_results_search(self):
     acc = self.account
     test_file_name = 'search' + str(random.random())[2:] + '.txt'
     root_folder = utils.create_or_get_test_folder(acc)
     test_folder_1 = acc.folders.create(data={
         'parent_id': root_folder.id,
         'name': 'folder %s' % random.randint(0, 10e8)})
     test_folder_2 = acc.folders.create(data={
         'parent_id': root_folder.id,
         'name': 'folder %s' % random.randint(0, 10e8)})
     test_file_1 = utils.create_test_file(acc, folder=test_folder_1,
                                          file_name=test_file_name)
     test_file_2 = utils.create_test_file(acc, folder=test_folder_2,
                                          file_name=test_file_name)
     if acc.service == 'box':
         time.sleep(210)
     results = acc.search.all(q=test_file_name)
     self.assertEqual({results[0].id, results[1].id},
                      {test_file_1.id, test_file_2.id})
예제 #4
0
 def setUpClass(cls):
     cls.wait_time = CUSTOM_WAIT_TIMES.get(cls.account.service, WAIT_TIME)
     cls.max_retries = 2
     cls.test_folder = utils.create_or_get_test_folder(cls.account)
     cls.test_subfolder = cls.account.folders.create(data={"parent_id": cls.test_folder.id, "name": "Test Events"})
     cls.test_subfolder2 = cls.account.folders.create(data={"parent_id": cls.test_folder.id, "name": "Test Events2"})
예제 #5
0
    def test_multipart(self):
        if self.account.service not in allow_multipart:
            self.skipTest("Multipart not allowed.")

        # Create Multipart
        acc = self.account
        folder = utils.create_or_get_test_folder(acc)
        multipart_data = {"parent_id": folder.id, "name": "multipart_test"}
        if self.account.service in require_file_size:
            multipart_data["size"] = self.file_size
        multipart = acc.multipart.create(data=multipart_data)

        # Retrieve Multipart
        new_multipart = acc.multipart.retrieve(id=multipart.id)
        self.assertEqual(str(new_multipart.id), str(multipart.id))
        self.assertEqual(str(new_multipart.account), str(multipart.account))

        chunk_size = new_multipart['part_size']
        num_parts = int(math.ceil(1.0 * self.file_size / chunk_size))

        # Upload Chunk
        for x in range(1, num_parts + 1):
            data = os.urandom(
                min(chunk_size, self.file_size - chunk_size * (x - 1)))
            response = multipart.upload_chunk(part_number=x, data=data)
            self.assertTrue(response)

        # Complete
        file_result = multipart.complete()
        self.assertIsInstance(file_result, sdk.resources.File)

        # Folder Check
        if file_result.get('parent'):
            if file_result.parent.get('name'):
                self.assertEqual(folder.name.lower(),
                                 file_result.parent.name.lower())
            elif file_result.parent.get('id'):
                folder_metadata = acc.folders.retrieve(
                    id=file_result.parent.id)
                folder_name = folder_metadata.get('name')
                if folder_name:
                    self.assertEqual(folder.name, folder_name)

        # Size Check
        if file_result.get('size'):
            self.assertEqual(self.file_size, file_result.get('size'))

        # Overwrite Checks

        multipart_data["size"] = 1 * chunk_size

        multipart = acc.multipart.create(data=multipart_data,
                                         params={'overwrite': 'true'})
        response = multipart.upload_chunk(part_number=1,
                                          data=os.urandom(chunk_size))
        self.assertTrue(response)
        overwrite_file_result = multipart.complete()
        self.assertIsInstance(overwrite_file_result, sdk.resources.File)
        self.assertEqual(file_result.name, overwrite_file_result.name)

        multipart = acc.multipart.create(data=multipart_data,
                                         params={'overwrite': 'false'})
        response = multipart.upload_chunk(part_number=1,
                                          data=os.urandom(chunk_size))
        self.assertTrue(response)
        no_overwrite_file_result = multipart.complete()
        self.assertIsInstance(overwrite_file_result, sdk.resources.File)
        self.assertNotEqual(file_result.name, no_overwrite_file_result.name)
예제 #6
0
 def setUp(self):
     self.test_folder = utils.create_or_get_test_folder(self.account)
     self.assertTrue(hasattr(self.test_folder, 'id'))
     self.assertEqual(self.test_folder.type, 'folder')
예제 #7
0
    def test_multipart(self):
        if self.account.service not in allow_multipart:
            self.skipTest("Multipart not allowed.")

        # Create Multipart
        acc = self.account
        folder = utils.create_or_get_test_folder(acc)
        multipart_data = {
            "parent_id": folder.id,
            "name": "multipart_test"
        }
        if self.account.service in require_file_size:
            multipart_data["size"] = self.file_size
        multipart = acc.multipart.create(data=multipart_data)

        # Retrieve Multipart
        new_multipart = acc.multipart.retrieve(id=multipart.id)
        self.assertEqual(str(new_multipart.id), str(multipart.id))
        self.assertEqual(str(new_multipart.account), str(multipart.account))

        chunk_size = new_multipart['part_size']
        num_parts = int(math.ceil(1.0 * self.file_size / chunk_size))

        # Upload Chunk
        for x in range(1, num_parts+1):
            data = os.urandom(min(chunk_size, self.file_size - chunk_size*(x-1)))
            response = multipart.upload_chunk(part_number=x, data=data)
            self.assertTrue(response)

        # Complete
        file_result = multipart.complete()
        self.assertIsInstance(file_result, sdk.resources.File)

        # Folder Check
        if file_result.get('parent'):
            if file_result.parent.get('name'):
                self.assertEqual(
                    folder.name.lower(), file_result.parent.name.lower())
            elif file_result.parent.get('id'):
                folder_metadata = acc.folders.retrieve(
                    id=file_result.parent.id)
                folder_name = folder_metadata.get('name')
                if folder_name:
                    self.assertEqual(folder.name, folder_name)

        # Size Check
        if file_result.get('size'):
            self.assertEqual(self.file_size, file_result.get('size'))

        # Overwrite Checks

        multipart_data["size"] = 1 * chunk_size

        multipart = acc.multipart.create(
            data=multipart_data, params={'overwrite': 'true'})
        response = multipart.upload_chunk(
            part_number=1, data=os.urandom(chunk_size))
        self.assertTrue(response)
        overwrite_file_result = multipart.complete()
        self.assertIsInstance(overwrite_file_result, sdk.resources.File)
        self.assertEqual(file_result.name, overwrite_file_result.name)

        multipart = acc.multipart.create(
            data=multipart_data, params={'overwrite': 'false'})
        response = multipart.upload_chunk(
            part_number=1, data=os.urandom(chunk_size))
        self.assertTrue(response)
        no_overwrite_file_result = multipart.complete()
        self.assertIsInstance(overwrite_file_result, sdk.resources.File)
        self.assertNotEqual(file_result.name, no_overwrite_file_result.name)
예제 #8
0
 def setUp(self):
     self.folder = utils.create_or_get_test_folder(self.account)
     self.file = utils.create_test_file(self.account)
예제 #9
0
 def setUp(self):
     self.test_folder = utils.create_or_get_test_folder(self.account)
     self.assertTrue(hasattr(self.test_folder, 'id'))
     self.assertEqual(self.test_folder.type, 'folder')