Пример #1
0
def test_transfer_commit(tmpdir, file_state, file_content):
    tmpdir.mkdir('simple')
    TransferState.output_path = Path(str(tmpdir))
    trans_state = TransferState(1, file_state)
    trans_state._file.seek(0)
    trans_state._file.write(file_content)
    trans_state.commit('foo')
    assert not (TransferState.output_path / 'simple' / trans_state._file.name).exists()
    final_path = TransferState.output_path / 'simple' / 'foo' / file_state.filename
    assert final_path.exists()
Пример #2
0
def test_transfer_verify(tmpdir, file_state, file_content):
    tmpdir.mkdir('simple')
    TransferState.output_path = Path(str(tmpdir))
    trans_state = TransferState(1, file_state)
    r = trans_state.fetch()
    trans_state.chunk(r.start, file_content[r.start:r.stop])
    r = trans_state.fetch()
    trans_state.chunk(r.start, file_content[r.start:r.stop])
    assert trans_state.done
    trans_state.verify()
Пример #3
0
def test_transfer_rollback(tmpdir, file_state, file_content):
    tmpdir.mkdir('simple')
    TransferState.output_path = Path(str(tmpdir))
    final_path = TransferState.output_path / 'simple' / 'foo' / file_state.filename
    trans_state = TransferState(1, file_state)
    temp_path = TransferState.output_path / trans_state._file.name
    trans_state._file.seek(0)
    trans_state._file.write(file_content)
    trans_state.rollback()
    assert not final_path.exists()
    assert not temp_path.exists()
Пример #4
0
def test_transfer_verify_fail_size(tmpdir, file_state, file_content):
    tmpdir.mkdir('simple')
    TransferState.output_path = Path(str(tmpdir))
    trans_state = TransferState(1, file_state)
    r = trans_state.fetch()
    trans_state.chunk(r.start, file_content[r.start:r.stop])
    r = trans_state.fetch()
    trans_state.chunk(r.start, file_content[r.start:r.stop])
    assert trans_state.done
    trans_state._file.write(b'\x00' * 4)
    with pytest.raises(IOError):
        trans_state.verify()
Пример #5
0
def test_transfer_commit_override_symlink(tmpdir, file_state, file_content):
    tmpdir.mkdir('simple')
    TransferState.output_path = Path(str(tmpdir))
    final_path = TransferState.output_path / 'simple' / 'foo' / file_state.filename
    final_path.parent.with_name('bar').mkdir()
    final_path.parent.symlink_to('bar', True)
    trans_state = TransferState(1, file_state)
    trans_state._file.seek(0)
    trans_state._file.write(file_content)
    trans_state.commit('foo')
    assert not (TransferState.output_path / 'simple' / trans_state._file.name).exists()
    assert not final_path.parent.is_symlink()
    assert final_path.parent.is_dir()
    assert final_path.exists()
Пример #6
0
def test_transfer_state_init(tmpdir, file_state):
    tmpdir.mkdir('simple')
    TransferState.output_path = Path(str(tmpdir))
    trans_state = TransferState(1, file_state)
    assert trans_state.slave_id == 1
    assert trans_state.file_state == file_state
    assert not trans_state.done
Пример #7
0
def test_transfer_commit_armv6_hack(tmpdir, file_state, file_content):
    file_state._filename = 'foo-0.1-cp34-cp34m-linux_armv7l.whl'
    file_state._py_version_tag = 'cp34'
    file_state._abi_tag = 'cp34m'
    file_state._platform_tag = 'linux_armv7l'
    tmpdir.mkdir('simple')
    TransferState.output_path = Path(str(tmpdir))
    final_path = TransferState.output_path / 'simple' / 'foo' / file_state.filename
    link_path = final_path.with_name('foo-0.1-cp34-cp34m-linux_armv6l.whl')
    trans_state = TransferState(1, file_state)
    trans_state._file.seek(0)
    trans_state._file.write(file_content)
    trans_state.commit('foo')
    assert not (TransferState.output_path / 'simple' / trans_state._file.name).exists()
    assert final_path.exists()
    assert link_path.is_symlink()
    assert link_path.resolve() == final_path
Пример #8
0
def test_transfer_state_fetch2(tmpdir, file_state, file_content):
    tmpdir.mkdir('simple')
    TransferState.output_path = Path(str(tmpdir))
    trans_state = TransferState(1, file_state)
    trans_state._credit = 10  # hack the credit
    assert trans_state.fetch() == range(TransferState.chunk_size)
    assert trans_state.fetch() == range(TransferState.chunk_size, 123456)
    assert trans_state.fetch() == range(TransferState.chunk_size)
    trans_state.chunk(0, file_content[:TransferState.chunk_size])
    assert trans_state.fetch() == range(TransferState.chunk_size, 123456)
    assert trans_state.fetch() == range(TransferState.chunk_size, 123456)
    trans_state.chunk(TransferState.chunk_size,
                      file_content[TransferState.chunk_size:])
    assert trans_state.fetch() is None
    assert trans_state.done