Ejemplo n.º 1
0
def test_tail_misplaced_time():
    miner = Miner(vcs=MisplacedTimeVcsMock([4]))
    project = miner.mine_commits()
    assert project.releases[0].length == timedelta(days=3)
    #TODO correct implement this test
    #assert project.releases[1].length == timedelta(days=3)
    assert project.releases[2].length == timedelta(days=3)
Ejemplo n.º 2
0
def test_mine_project_name():
    miner = Miner(vcs=VcsMock("../../repos/releasy"))
    assert miner._project.name == "releasy"
    miner = Miner(vcs=VcsMock("releasy"))
    assert miner._project.name == "releasy"
    miner = Miner(vcs=VcsMock("./releasy"))
    assert miner._project.name == "releasy"
Ejemplo n.º 3
0
def test_release_committers():
    vcs = VcsMock()
    miner = Miner(vcs=vcs)
    dev = vcs.dev
    project = miner.mine_commits()
    assert len(project.releases[0].developers.committers) == 2
    assert len(project.releases[1].developers.committers) == 1
    assert len(project.releases[2].developers.committers) == 1
    assert len(project.releases[3].developers.committers) == 3
    assert len(project.releases[4].developers.committers) == 2
    assert len(project.releases[5].developers.committers) == 1
    assert len(project.releases[6].developers.committers) == 3
    assert len(project.releases[7].developers.committers) == 0
    assert len(project.releases[8].developers.committers) == 1
    assert project.releases[0].developers.committers[0] == dev.bob
    assert project.releases[0].developers.committers[1] == dev.alice
    assert project.releases[1].developers.committers[0] == dev.bob
    assert project.releases[2].developers.committers[0] == dev.alice
    assert project.releases[3].developers.committers[0] == dev.charlie
    assert project.releases[3].developers.committers[1] == dev.bob
    assert project.releases[3].developers.committers[2] == dev.alice
    assert project.releases[4].developers.committers[0] == dev.alice
    assert project.releases[4].developers.committers[1] == dev.bob
    assert project.releases[6].developers.committers[0] == dev.alice
    assert project.releases[6].developers.committers[1] == dev.charlie
    assert project.releases[6].developers.committers[2] == dev.bob
    assert project.releases[8].developers.committers[0] == dev.alice
Ejemplo n.º 4
0
def test_head_misplaced_time():
    miner = Miner(vcs=MisplacedTimeVcsMock([7]))
    project = miner.mine_commits()
    # releases are sorted by time, so 1.1.1 comes first
    with pytest.raises(MisplacedTimeException):
        project.releases[0].length
    #TODO release 1 was with 0 commits
    # assert project.releases[1].length == timedelta(days=3)
    assert project.releases[2].length == timedelta(days=3)
Ejemplo n.º 5
0
def test_release_time():
    miner = Miner(vcs=VcsMock())
    project = miner.mine_releases()
    assert project.releases[0].get_time() == datetime(2020, 1, 2, 13, 00)
    assert project.releases[1].get_time() == datetime(2020, 1, 4, 13, 00)
    assert project.releases[2].get_time() == datetime(2020, 1, 7, 12, 00)
    assert project.releases[3].get_time() == datetime(2020, 1, 9, 12, 00)
    assert project.releases[4].get_time() == datetime(2020, 1, 11, 12, 00)
    assert project.releases[5].get_time() == datetime(2020, 1, 14, 12, 00)
    assert project.releases[6].get_time() == datetime(2020, 1, 15, 13, 00)
    assert project.releases[7].get_time() == datetime(2020, 1, 15, 14, 00)
    assert project.releases[8].get_time() == datetime(2020, 1, 21, 12, 00)
Ejemplo n.º 6
0
def ignore_test_pre_releases():
    miner = Miner(vcs=VcsMock())
    project = miner.mine_releases()
    assert len(project.releases[0].pre_releases) == 0
    assert len(project.releases[1].pre_releases) == 0
    assert len(project.releases[2].pre_releases) == 0
    assert len(project.releases[3].pre_releases) == 0
    assert len(project.releases[4].pre_releases) == 0
    assert len(project.releases[5].pre_releases) == 2
    assert len(project.releases[6].pre_releases) == 0
    assert len(project.releases[7].pre_releases) == 0
    assert len(project.get_releases(releasy.RELEASE_TYPE_PRE)) == 2
Ejemplo n.º 7
0
def test_mine_commits():
    miner = Miner(vcs=VcsMock("releasy"))
    project = miner.mine_commits()
    assert len(project.releases[0].commits) == 2
    assert len(project.releases[1].commits) == 2
    assert len(project.releases[2].commits) == 2
    assert len(project.releases[3].commits) == 3
    assert len(project.releases[4].commits) == 2
    assert len(project.releases[5].commits) == 1
    assert len(project.releases[6].commits) == 8
    assert len(project.releases[7].commits) == 0
    assert len(project.releases[8].commits) == 6
    assert len(project.commits) == 21
Ejemplo n.º 8
0
def test_mine_releases():
    miner = Miner(vcs=VcsMock("releasy"))
    project = miner.mine_releases()
    assert len(project.releases) == 9
    assert project.releases[0].version == "1.0.0"
    assert project.releases[1].version == "1.0.1"
    assert project.releases[2].version == "1.1.0"
    assert project.releases[3].version == "2.0.0"
    assert project.releases[4].version == "2.0.0"
    assert project.releases[5].version == "1.0.2"
    assert project.releases[6].version == "2.0.0"
    assert project.releases[7].version == "2.0.1"
    assert project.releases[8].version == "2.1.0"
Ejemplo n.º 9
0
def ignore_test_duplicated_releases():
    miner = Miner(vcs=VcsMock())
    project = miner.mine_releases()
    assert not project.releases[0].is_duplicated()
    assert not project.releases[1].is_duplicated()
    assert not project.releases[2].is_duplicated()
    assert not project.releases[3].is_duplicated()
    assert not project.releases[4].is_duplicated()
    assert not project.releases[5].is_duplicated()
    assert project.releases[6].is_duplicated()
    assert not project.releases[7].is_duplicated()
    assert project.releases[6].original == project.releases[5]
    assert len(project.get_releases(releasy.RELEASE_TYPE_DUPLICATED)) == 1
    assert len(project.get_releases(releasy.RELEASE_TYPE_COMMON)) == 5
Ejemplo n.º 10
0
def test_mine_release_prefixes():
    miner = Miner(vcs=DifferentReleaseNameVcsMock(), release_prefixes=["v",""])
    project = miner.mine_releases()
    assert len(project.releases) == 8
    assert project.releases[0].version == "0.0.0"
    assert project.releases[1].version == "0.1.0"
    assert project.releases[2].version == "1.0.0"
    assert project.releases[3].version == "1.0.0"
    assert project.releases[4].version == "1.0.0"
    assert project.releases[5].version == "1.0.0"
    assert project.releases[6].version == "1.0.0"
    assert project.releases[7].version == "3.0.0"
    assert len(project.release_prefixes) == 2
    assert "v" in project.release_prefixes
    assert "" in project.release_prefixes
Ejemplo n.º 11
0
def test_release_length():
    miner = Miner(vcs=VcsMock())
    project = miner.mine_commits()
    assert project.releases[0].get_length() == timedelta(days=1) + timedelta(
        hours=1)
    assert project.releases[1].get_length() == timedelta(days=1) + timedelta(
        hours=1)
    assert project.releases[2].get_length() == timedelta(days=1)
    assert project.releases[3].get_length() == timedelta(days=4)
    assert project.releases[4].get_length() == timedelta(days=1)
    assert project.releases[5].get_length() == timedelta(days=0)
    assert project.releases[6].get_length() == timedelta(days=10) + timedelta(
        hours=1)  # check
    assert project.releases[7].get_length() == timedelta(days=0) + timedelta(
        hours=2)
    assert project.releases[8].get_length() == timedelta(days=5)
Ejemplo n.º 12
0
def test_mine_release_suffixes(): #TODO ignored suffix should affect only pre_releases
    miner = Miner(vcs=DifferentReleaseNameVcsMock(), release_prefixes=["v",""], ignored_suffixes=["Final"])
    project = miner.mine_releases()
    assert not project.releases[0].suffix
    assert not project.releases[1].suffix
    assert not project.releases[2].suffix
    assert project.releases[3].suffix == "beta1"
    assert project.releases[4].suffix == "beta2"
    assert project.releases[5].suffix == "a1"
    assert project.releases[6].suffix == "b1"
    assert not project.releases[7].suffix
    assert len(project.release_suffixes) == 5
    assert "" in project.release_suffixes
    assert "a1" in project.release_suffixes
    assert "b1" in project.release_suffixes
    assert "beta1" in project.release_suffixes
    assert "beta2" in project.release_suffixes
    assert "Final" not in project.release_suffixes
Ejemplo n.º 13
0
def test_release_base():
    miner = Miner(vcs=VcsMock())
    project = miner.mine_commits()
    assert len(project.releases[0].base_releases) == 0
    assert len(project.releases[1].base_releases) == 1
    assert len(project.releases[2].base_releases) == 1
    assert len(project.releases[3].base_releases) == 2
    assert len(project.releases[4].base_releases) == 1
    assert len(project.releases[5].base_releases) == 1
    assert len(project.releases[6].base_releases) == 2
    assert len(project.releases[7].base_releases) == 1
    assert len(project.releases[8].base_releases) == 1
    assert project.releases[1].base_releases[0] == project.releases[0]
    assert project.releases[2].base_releases[0] == project.releases[0]
    assert project.releases[3].base_releases[0] == project.releases[1]
    assert project.releases[3].base_releases[1] == project.releases[2]
    assert project.releases[4].base_releases[0] == project.releases[3]
    assert project.releases[5].base_releases[0] == project.releases[1]
    assert project.releases[6].base_releases[0] == project.releases[5]
    assert project.releases[6].base_releases[1] == project.releases[4]
    assert project.releases[7].base_releases[0] == project.releases[6]
    assert project.releases[8].base_releases[0] == project.releases[6]
Ejemplo n.º 14
0
def test_git_mine_commits():
    miner = Miner(vcs=GitVcs("."))
    project = miner.mine_commits()
    assert project.releases[0].tail_commits[
        0].hashcode == "2e7bc1351f60592d238c76e34ca4e7eda83ed936"
Ejemplo n.º 15
0
def test_mine_release_version_separator():
    miner = Miner(vcs=DifferentReleaseNameVcsMock(), version_separator="_")
    project = miner.mine_releases()
    assert len(project.releases) == 1
    assert project.releases[0].version == "2.0.1"
Ejemplo n.º 16
0
def test_git_mine_releases():
    miner = Miner(vcs=GitVcs("."))
    project = miner.mine_releases()
    assert project.releases[1].name == "1.0.1"
Ejemplo n.º 17
0
def test_middle_misplaced_time():
    miner = Miner(vcs=MisplacedTimeVcsMock([2]))
    project = miner.mine_commits()
    assert project.releases[0].length == timedelta(days=3)
    assert project.releases[1].length == timedelta(days=3)
    assert project.releases[2].length == timedelta(days=3)
Ejemplo n.º 18
0
def test_annotated_tags():
    miner = Miner(vcs=GitVcs("."))
    project = miner.mine_releases()