def test_file_upload(api, given, empty_file, project_id, parent_id, no_api): upload_id = generator.uuid4() api_instance = api file_id = generator.uuid4() file_part_url = generator.url() file_content = generator.uuid4() given.uploads.initialized_upload(part_size=1, upload_id=upload_id) given.uploads.got_file_part(file_part_url) given.uploads.got_etag(file_part_url) given.uploads.reported_part() given.uploads.finalized_upload(file_id) temp_file = tempfile.NamedTemporaryFile('w', delete=False, dir='.') if not empty_file: temp_file.write(file_content) temp_file.close() project_and_parent = project_id is not None and parent_id is not None no_project_or_parent = project_id is None and parent_id is None if no_api: api_instance = None if empty_file or project_and_parent or no_project_or_parent or no_api: with pytest.raises(SbgError): Upload(temp_file.name, project=project_id, parent=parent_id, api=api_instance, part_size=1) else: upload = Upload(temp_file.name, project=project_id, parent=parent_id, api=api, part_size=1) upload.start() upload.wait() result = upload.result() assert upload.status == 'COMPLETED' assert result.id == file_id assert upload.duration > 0 assert upload.file_name == os.path.basename(temp_file.name) assert upload.start_time > 0 os.remove(temp_file.name)
def test_file_upload(api, given, empty_file, project_id, parent_id, no_api, tmpdir): upload_id = generator.uuid4() api_instance = api file_id = generator.uuid4() file_part_url = generator.url() file_name = generator.uuid4() file_content = generator.uuid4() given.uploads.initialized_upload( part_size=PartSize.UPLOAD_RECOMMENDED_SIZE, upload_id=upload_id) given.uploads.got_file_part(file_part_url) given.uploads.got_etag(file_part_url) given.uploads.reported_part() given.uploads.finalized_upload(file_id) with open(tmpdir / file_name, 'w') as temp_file: if not empty_file: temp_file.write(str(file_content)) project_and_parent = project_id is not None and parent_id is not None no_project_or_parent = project_id is None and parent_id is None if no_api: api_instance = None if project_and_parent or no_project_or_parent or no_api: with pytest.raises(SbgError): Upload(temp_file.name, project=project_id, parent=parent_id, api=api_instance, part_size=PartSize.UPLOAD_RECOMMENDED_SIZE) else: upload = Upload(temp_file.name, project=project_id, parent=parent_id, api=api, part_size=PartSize.UPLOAD_RECOMMENDED_SIZE) upload.start() upload.wait() result = upload.result() assert upload.status == TransferState.COMPLETED assert result.id == file_id assert upload.duration > 0 assert upload.file_name == os.path.basename(temp_file.name) assert upload.start_time > 0