Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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