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)
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"
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
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)
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)
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
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
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"
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
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
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)
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
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]
def test_git_mine_commits(): miner = Miner(vcs=GitVcs(".")) project = miner.mine_commits() assert project.releases[0].tail_commits[ 0].hashcode == "2e7bc1351f60592d238c76e34ca4e7eda83ed936"
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"
def test_git_mine_releases(): miner = Miner(vcs=GitVcs(".")) project = miner.mine_releases() assert project.releases[1].name == "1.0.1"
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)
def test_annotated_tags(): miner = Miner(vcs=GitVcs(".")) project = miner.mine_releases()