예제 #1
0
def test_zero_data(sample_data):
    stream_handler = StreamHandler(StringIO())
    bucket = FakeBucket()
    sup = UploadSupervisor(stream_handler, 'test', bucket=bucket)
    with pytest.raises(UploadException):
        sup.main_loop(worker_class=DummyWorker)
    assert bucket._multipart._canceled is True
예제 #2
0
def test_supervisor_loop(sample_data):
    stream_handler = StreamHandler(sample_data)
    bucket = FakeBucket()
    sup = UploadSupervisor(stream_handler, 'test', bucket=bucket)
    etag = sup.main_loop(worker_class=DummyWorker)
    assert etag == '"d229c1fc0e509475afe56426c89d2724-2"'
    assert bucket._multipart._completed
예제 #3
0
def test_integration(sample_data):
    cfg = get_config()
    stream_handler = StreamHandler(sample_data)
    bucket = boto.connect_s3(
        cfg['S3_KEY_ID'], cfg['S3_SECRET']).get_bucket(cfg['BUCKET'])
    key_name = "z3_test_" + datetime.now().strftime("%Y%m%d_%H-%M-%S")
    sup = UploadSupervisor(
        stream_handler,
        key_name,
        bucket=bucket,
        headers=parse_metadata(["ana=are+mere", "dana=are=pere"])
    )
    etag = sup.main_loop()
    uploaded = bucket.get_key(key_name)
    assert etag == '"d229c1fc0e509475afe56426c89d2724-2"'
    assert etag == uploaded.etag
    assert uploaded.metadata == {"ana": "are+mere", "dana": "are=pere"}
예제 #4
0
def test_supervisor_loop_with_worker_crash(sample_data):
    stream_handler = StreamHandler(sample_data)
    bucket = FakeBucket()
    sup = UploadSupervisor(stream_handler, 'test', bucket=bucket)
    with pytest.raises(WorkerCrashed):
        sup.main_loop(worker_class=ErrorWorker)