Exemplo n.º 1
0
def test_reading_and_writing_repository():
    repository_state_dir = temp_dir()

    @stubclass(SshRepository)
    class RepositoryStub:
        @property
        def unique_id(self):
            return 'myid'

        repository_state_directory = repository_state_dir.name

    repository = RepositoryStub()
    expected_repository_state_file = os.path.join(
        repository_state_dir.name, '%s.uploaded' % repository.unique_id)

    local_state = RepositoryLocalState(repository)

    # Case: on first read, does not break if file does not exist
    assert not os.path.exists(expected_repository_state_file)
    local_state.read()
    assert local_state.uploaded_project_ids == set([])

    # Case: on write, creates file
    assert not os.path.exists(expected_repository_state_file)
    local_state.uploaded_project_ids = {'someid1', 'someid2'}
    local_state.write()
    assert os.path.isfile(expected_repository_state_file)

    # Case: read existing stuff correctly
    local_state.uploaded_project_ids = set([])
    local_state.read()
    assert local_state.uploaded_project_ids == {'someid1', 'someid2'}
Exemplo n.º 2
0
def test_queries():
    @stubclass(DebianPackage)
    class PackageStub(object):
        def __init__(self, name):
            self.name = name

        @property
        def unique_id(self):
            return self.name

    package1 = PackageStub('myname')
    package2 = PackageStub('yourname')


    @stubclass(SshRepository)
    class RepositoryStub(object):
        pass

    repository = RepositoryStub()
    local_state = RepositoryLocalState(repository)

    local_state.set_uploaded(package1)

    assert local_state.is_uploaded(package1)
    assert not local_state.is_uploaded(package2)