def test_file_versions_download(self): if self.imaging_api.api_client.configuration.on_premise: return folder = self.temp_folder + '/Storage' file1 = 'Storage.txt' file2 = 'Folder1/Folder1.txt' try: if self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists: self.imaging_api.delete_folder( requests.DeleteFolderRequest( folder, self.test_storage, True)) self.assertFalse( self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists) self.imaging_api.copy_file( requests.CopyFileRequest( self.original_data_folder + '/' + file1, folder + '/' + file1, self.test_storage, self.test_storage)) self.imaging_api.copy_file( requests.CopyFileRequest( self.original_data_folder + '/' + file2, folder + '/' + file1, self.test_storage, self.test_storage)) versions = self.imaging_api.get_file_versions( requests.GetFileVersionsRequest( folder + '/' + file1, self.test_storage)).value recent_version = next(x for x in versions if x.is_latest is True) old_version = next(x for x in versions if x.is_latest is not True) with open(self.imaging_api.download_file( requests.DownloadFileRequest(folder + '/' + file1, self.test_storage, old_version.version_id)), 'r') as old_file: self.assertEqual(old_version.size, len(old_file.read())) with open(self.imaging_api.download_file( requests.DownloadFileRequest(folder + '/' + file1, self.test_storage, recent_version.version_id)), 'r') as old_file: self.assertEqual(recent_version.size, len(old_file.read())) finally: if self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists: self.imaging_api.delete_folder( requests.DeleteFolderRequest( folder, self.test_storage, True))
def _copy_input_file_to_test_folder(self, input_file_name, folder, storage): if not self.imaging_api.object_exists( requests.ObjectExistsRequest( os.path.join(folder, input_file_name), storage)).exists: self.imaging_api.copy_file( requests.CopyFileRequest( os.path.join(self.original_data_folder + '/UseCases', input_file_name), os.path.join(folder, input_file_name), storage, storage))
def _copy_input_file_to_test_folder(self, input_file_name, folder, storage): if not self._check_input_file_exists(input_file_name): raise ValueError( "Input file {0} doesn't exist in the specified storage folder: {1}. Please, upload it first." .format(input_file_name, folder)) if not self.imaging_api.object_exists( requests.ObjectExistsRequest( os.path.join(folder, input_file_name), storage)).exists: self.imaging_api.copy_file( requests.CopyFileRequest( os.path.join(self.original_data_folder, input_file_name), os.path.join(folder, input_file_name), storage, storage))
def __object_detection_request_tester(self, test_method_name, save_result_to_storage, parameters_line, input_file_name, result_file_name, invoke_request_action, response_tester, folder, storage=None): if not storage: storage = self.default_storage print(test_method_name) if not self._check_input_file_exists(input_file_name): raise ValueError( "Input file {0} doesn't exist in the specified storage folder: {1}. Please, upload it first." .format(input_file_name, folder)) if not self.imaging_api.object_exists( requests.ObjectExistsRequest( os.path.join(folder, input_file_name), storage)).exists: self.imaging_api.copy_file( requests.CopyFileRequest( os.path.join(self.original_data_folder, input_file_name), os.path.join(folder, input_file_name), storage, storage)) passed = False out_path = str(None) try: print(parameters_line) if save_result_to_storage: out_path = os.path.join(folder, result_file_name) if self.imaging_api.object_exists( requests.ObjectExistsRequest(out_path, storage)).exists: self.imaging_api.delete_file( requests.DeleteFileRequest(out_path, storage)) response = invoke_request_action() if save_result_to_storage: result_info = self._get_storage_file_info( folder, result_file_name, storage) if not result_info: raise ValueError( "Result file {0} doesn't exist in the specified storage folder: {1}. " "Result isn't present in the storage by an unknown reason." .format(result_file_name, folder)) response_tester(response) passed = True except Exception as e: self.failed_any_test = True print(str(e)) raise finally: if passed and save_result_to_storage and self.remove_result \ and self.imaging_api.object_exists( requests.ObjectExistsRequest(out_path, storage)).exists: self.imaging_api.delete_file( requests.DeleteFileRequest(out_path, storage)) print("Test passed: " + str(passed) + os.linesep)
def test_move_file(self): folder = self.temp_folder + '/Storage' file = 'Storage.txt' try: if self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists: self.imaging_api.delete_folder( requests.DeleteFolderRequest( folder, self.test_storage, True)) self.assertFalse( self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists) self.imaging_api.copy_file( requests.CopyFileRequest( self.original_data_folder + '/' + file, folder + '/' + file + '.copied', self.test_storage, self.test_storage)) exist_response = self.imaging_api.object_exists( requests.ObjectExistsRequest( folder + '/' + file + '.copied', self.test_storage)) self.assertIsNotNone(exist_response) self.assertFalse(exist_response.is_folder) self.assertTrue(exist_response.exists) self.imaging_api.move_file( requests.MoveFileRequest( folder + '/' + file + '.copied', folder + '/' + file, self.test_storage, self.test_storage)) self.assertFalse( self.imaging_api.object_exists( requests.ObjectExistsRequest( folder + '/' + file + '.copied', self.test_storage)).exists) exist_response = self.imaging_api.object_exists( requests.ObjectExistsRequest( folder + '/' + file, self.test_storage)) self.assertIsNotNone(exist_response) self.assertFalse(exist_response.is_folder) self.assertTrue(exist_response.exists) original_file_info = next( x for x in self.imaging_api.get_files_list( requests.GetFilesListRequest( self.original_data_folder, self.test_storage)).value if x.name == file) moved_file_info = next( x for x in self.imaging_api.get_files_list( requests.GetFilesListRequest( folder, self.test_storage)).value if x.name == file) self.assertEqual(original_file_info.size, moved_file_info.size) with open(self.imaging_api.download_file( requests.DownloadFileRequest(self.original_data_folder + '/' + file, self.test_storage)), 'r') as original_file, \ open(self.imaging_api.download_file(requests.DownloadFileRequest(folder + '/' + file, self.test_storage)), 'r') as moved_file: original_string = original_file.read() moved_string = moved_file.read() self.assertEqual(len(original_string), len(moved_string)) self.assertEqual(len(original_string), original_file_info.size) self.assertEqual(original_string, moved_string) self.assertEqual( original_string, original_file_info.path.strip('/')) self.assertEqual( original_string.replace( self.original_data_folder, folder), moved_file_info.path.strip('/')) finally: self.imaging_api.delete_file( requests.DeleteFileRequest( folder + '/' + file, self.test_storage)) self.assertFalse( self.imaging_api.object_exists( requests.ObjectExistsRequest( folder + '/' + file, self.test_storage)).exists) if self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists: self.imaging_api.delete_folder( requests.DeleteFolderRequest( folder, self.test_storage, True)) self.assertFalse( self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists)
def test_file_versions_move(self): if self.imaging_api.api_client.configuration.on_premise: return folder = self.temp_folder + '/Storage' file1 = 'Storage.txt' file2 = 'Folder1/Folder1.txt' try: if self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists: self.imaging_api.delete_folder( requests.DeleteFolderRequest( folder, self.test_storage, True)) self.assertFalse( self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists) self.imaging_api.copy_file( requests.CopyFileRequest( self.original_data_folder + '/' + file1, folder + '/' + file1, self.test_storage, self.test_storage)) self.imaging_api.copy_file( requests.CopyFileRequest( self.original_data_folder + '/' + file2, folder + '/' + file1, self.test_storage, self.test_storage)) versions = self.imaging_api.get_file_versions( requests.GetFileVersionsRequest( folder + '/' + file1, self.test_storage)).value recent_version = next(x for x in versions if x.is_latest is True) self.imaging_api.move_file( requests.MoveFileRequest( folder + '/' + file1, folder + '/' + file1 + '.recent', self.test_storage, self.test_storage, recent_version.version_id)) copied_versions = self.imaging_api.get_file_versions( requests.GetFileVersionsRequest( folder + '/' + file1 + '.recent', self.test_storage)).value self.assertEqual(1, len(copied_versions)) self.assertTrue(copied_versions[0].is_latest) self.assertEqual(recent_version.size, copied_versions[0].size) self.imaging_api.copy_file( requests.CopyFileRequest( self.original_data_folder + '/' + file1, folder + '/' + file1, self.test_storage, self.test_storage)) self.imaging_api.copy_file( requests.CopyFileRequest( self.original_data_folder + '/' + file2, folder + '/' + file1, self.test_storage, self.test_storage)) versions = self.imaging_api.get_file_versions( requests.GetFileVersionsRequest( folder + '/' + file1, self.test_storage)).value old_version = next(x for x in versions if x.is_latest is not True) self.imaging_api.move_file( requests.MoveFileRequest( folder + '/' + file1, folder + '/' + file1 + '.old', self.test_storage, self.test_storage, old_version.version_id)) copied_versions = self.imaging_api.get_file_versions( requests.GetFileVersionsRequest(folder + '/' + file1 + '.old', self.test_storage)).value self.assertEqual(1, len(copied_versions)) self.assertTrue(copied_versions[0].is_latest) self.assertEqual(old_version.size, copied_versions[0].size) finally: if self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists: self.imaging_api.delete_folder( requests.DeleteFolderRequest( folder, self.test_storage, True))
def test_file_versions_create(self): if self.imaging_api.api_client.configuration.on_premise: return folder = self.temp_folder + '/Storage' file1 = 'Storage.txt' file2 = 'Folder1/Folder1.txt' file1_size = next( x for x in self.imaging_api.get_files_list( requests.GetFilesListRequest( self.original_data_folder, self.test_storage)).value if x.name == file1).size file2_size = next( x for x in self.imaging_api.get_files_list( requests.GetFilesListRequest( self.original_data_folder + '/Folder1', self.test_storage)).value if x.name == 'Folder1.txt').size try: if self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists: self.imaging_api.delete_folder( requests.DeleteFolderRequest( folder, self.test_storage, True)) self.assertFalse( self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists) self.imaging_api.copy_file( requests.CopyFileRequest( self.original_data_folder + '/' + file1, folder + '/' + file1, self.test_storage, self.test_storage)) self.imaging_api.copy_file( requests.CopyFileRequest( self.original_data_folder + '/' + file2, folder + '/' + file1, self.test_storage, self.test_storage)) versions = self.imaging_api.get_file_versions( requests.GetFileVersionsRequest( folder + '/' + file1, self.test_storage)).value self.assertEqual(2, len(versions)) recent_version_size = next( x for x in versions if x.is_latest is True).size old_version_size = next( x for x in versions if x.is_latest is not True).size self.assertNotEqual(recent_version_size, old_version_size) self.assertEqual(old_version_size, file1_size) self.assertEqual(recent_version_size, file2_size) finally: if self.imaging_api.object_exists( requests.ObjectExistsRequest( folder, self.test_storage)).exists: self.imaging_api.delete_folder( requests.DeleteFolderRequest( folder, self.test_storage, True))