Пример #1
0
def test_fetch_pvtags_history_no_tags(untagged_repo, empty_repo, foo):
    untagged_repo.chdir()

    pvtags.populate_pvtags_history(foo)
    assert foo.pvtags_history == []

    empty_repo.chdir()

    pvtags.populate_pvtags_history(foo)
    assert foo.pvtags_history == []
Пример #2
0
def test_populate_pvtags_history_multi_projects(ok_repo, project1, project2,
                                                foo):
    ok_repo.chdir()

    pvtags.populate_pvtags_history(project1,
                                   project2,
                                   foo,
                                   include_lightweight=True)
    assert project1.pvtags_history == ['proj1-v0.0.1', 'proj1-v0.0.0']
    assert project2.pvtags_history == ['proj-2-V0.2.1', 'proj-2-V0.2.0']
    assert foo.pvtags_history == []
Пример #3
0
def test_project_matching_all_pvtags(ok_repo, project1):
    ok_repo.chdir()

    all_pvtags = pvtags.make_match_all_pvtags_project()
    pvtags.populate_pvtags_history(all_pvtags)
    assert all_pvtags.pname == '<PVTAG>'
    assert all_pvtags.pvtags_history == ['proj1-v0.0.1', 'proj1-v0.0.0']

    all_vtags = pvtags.make_match_all_vtags_project()
    assert all_vtags.pname == '<VTAG>'
    pvtags.populate_pvtags_history(all_vtags)
    assert all_vtags.pvtags_history == []
Пример #4
0
def test_simple_project(mutable_pvtags_repo, project2, caplog):
    BAD_TAG = 'irrelevant_tag'
    mutable_pvtags_repo.chdir()
    caplog.set_level(0)

    cmd.git.tag(BAD_TAG, m='ggg')
    cmd.git.tag('v123')
    cmd.git.tag('v12.0', m='hh')
    all_vtags = pvtags.make_match_all_vtags_project()
    caplog.clear()
    pvtags.populate_pvtags_history(all_vtags)
    assert all_vtags.pvtags_history == ['v12.0']
    assert BAD_TAG not in caplog.text

    pvtags.populate_pvtags_history(all_vtags, include_lightweight=True)
    assert all_vtags.pvtags_history == ['v12.0', 'v123']

    ## Check both pvtag & vtag formats.

    all_pvtags = pvtags.make_match_all_pvtags_project()
    pvtags.populate_pvtags_history(project2,
                                   all_pvtags,
                                   all_vtags,
                                   include_lightweight=True)
    assert all_vtags.pvtags_history == ['v12.0', 'v123']
    assert all_pvtags.pvtags_history == ['proj1-v0.0.1', 'proj1-v0.0.0']
    assert project2.pvtags_history == ['proj-2-V0.2.1', 'proj-2-V0.2.0']
Пример #5
0
def test_populate_pvtags_history_per_project(ok_repo, project1, project2, foo):
    ok_repo.chdir()

    with pytest.raises(AssertionError):
        project1.pvtags_history

    pvtags.populate_pvtags_history(project1)
    assert project1.pvtags_history == ['proj1-v0.0.1', 'proj1-v0.0.0']

    pvtags.populate_pvtags_history(project2)
    assert project2.pvtags_history == []
    pvtags.populate_pvtags_history(project2, include_lightweight=True)
    assert project2.pvtags_history == ['proj-2-V0.2.1', 'proj-2-V0.2.0']

    ## Ensure no side-effects.
    assert project1.pvtags_history == ['proj1-v0.0.1', 'proj1-v0.0.0']

    pvtags.populate_pvtags_history(foo)
    assert foo.pvtags_history == []

    ## Ensure no side-effects.
    assert project1.pvtags_history == ['proj1-v0.0.1', 'proj1-v0.0.0']
    assert project2.pvtags_history == ['proj-2-V0.2.1', 'proj-2-V0.2.0']
Пример #6
0
def test_fetch_pvtags_history_git_not_in_path(foo, monkeypatch):
    monkeypatch.setenv('PATH', '')

    with pytest.raises(FileNotFoundError):
        pvtags.populate_pvtags_history(foo)
Пример #7
0
def test_fetch_pvtags_history_BAD(no_repo, foo):
    no_repo.chdir()

    with pytest.raises(pvtags.NoGitRepoError):
        pvtags.populate_pvtags_history(foo)