def test_inference_with_suffixes(): with GitRepo() as g: g.commit("feat: initial commit", allow_empty=True) g.tag("0.1.0rc1") g.commit("fix: test", allow_empty=True) assert infer_vnext(g.log(), suffix="rc") == "0.1.0rc2" g.tag("0.1.0rc2") assert infer_vnext(g.log(), suffix="rc") == "0.1.0rc3"
def test_infers_major_bump_correctly(): with GitRepo() as g: g.commit("feat: initial commit", allow_empty=True) g.tag("1.1.0") g.commit("feat: breaking\nBREAKING CHANGE: breaking", allow_empty=True) assert infer_vnext(g.log()) == SemVer(2, 0, 0) g.tag("2.0.0") g.commit("feat: test\nBREAKING CHANGE: test", allow_empty=True) assert infer_vnext(g.log()) == SemVer(3, 0, 0)
def test_infers_micro_bump_correctly(): with GitRepo() as g: g.commit("feat: initial commit", allow_empty=True) g.tag("0.1.0") assert infer_vnext(g.log()) == SemVer(0, 1, 1) g.commit("chore: test", allow_empty=True) g.tag("0.1.1") g.commit("fix: test", allow_empty=True) assert infer_vnext(g.log()) == SemVer(0, 1, 2)
def test_infers_first_version(suffix, suffix_dot_suffix, suffix_dash_prefix, semver): with GitRepo() as g: g.commit("test: test", allow_empty=True) g.commit("feat: test2", allow_empty=True) g.commit("feat: test3\nBREAKING CHANGE: test", allow_empty=True) assert (infer_vnext( g.log(), suffix=suffix, suffix_dot_suffix=suffix_dot_suffix, suffix_dash_prefix=suffix_dash_prefix, ) == semver)
def test_version_inference_with_non_cc_commit_msg(): with GitRepo() as g: g.commit("test", allow_empty=True) g.tag("v0.1.0") g.commit("test2", allow_empty=True) assert infer_vnext(g.log()) == "0.1.1"
def test_version_inference_with_default_v_prefix(): with GitRepo() as g: g.commit("feat: test", allow_empty=True) main(["--repo-path", g.repo_path, "--tag"]) g.commit("fix: test", allow_empty=True) assert infer_vnext(g.log()) == "0.1.1"