def test_create_release_commit(py_package, build_mock): util.bump_version("0.0.2a0") version = util.get_version() util.run("python -m build .") shas = util.create_release_commit(version) assert util.normalize_path("dist/foo-0.0.2a0.tar.gz") in shas assert util.normalize_path("dist/foo-0.0.2a0-py3-none-any.whl") in shas
def test_create_release_commit_hybrid(py_package, build_mock): # Add an npm package and test with that util.bump_version("0.0.2a0") version = util.get_version() testutil.create_npm_package(py_package) pkg_json = py_package / "package.json" data = json.loads(pkg_json.read_text(encoding="utf-8")) data["version"] = version pkg_json.write_text(json.dumps(data, indent=4), encoding="utf-8") txt = (py_package / "tbump.toml").read_text(encoding="utf-8") txt += testutil.TBUMP_NPM_TEMPLATE (py_package / "tbump.toml").write_text(txt, encoding="utf-8") util.run("python -m build .") shas = util.create_release_commit(version) assert len(shas) == 2 assert util.normalize_path("dist/foo-0.0.2a0.tar.gz") in shas
def test_check_changelog(py_package, tmp_path, mocker, runner, git_prep): changelog_entry = mock_changelog_entry(py_package, runner, mocker) output = "output.md" # prep the release bump_version(VERSION_SPEC) runner( ["check-changelog", "--changelog-path", changelog_entry, "--output", output], ) output = Path(util.CHECKOUT_NAME) / output assert PR_ENTRY in output.read_text(encoding="utf-8") changelog_entry = Path(util.CHECKOUT_NAME) / changelog_entry text = changelog_entry.read_text(encoding="utf-8") assert f"{changelog.START_MARKER}\n\n## {VERSION_SPEC}" in text assert changelog.END_MARKER in text
def bump_version(version_spec, version_cmd): """Bump the version and verify new version""" util.bump_version(version_spec, version_cmd=version_cmd) version = util.get_version() # A properly parsed version will have a "major" attribute parsed = parse_version(version) if util.SETUP_PY.exists() and not hasattr(parsed, "major"): raise ValueError(f"Invalid version {version}") # Bail if tag already exists tag_name = f"v{version}" if tag_name in util.run("git --no-pager tag").splitlines(): msg = f"Tag {tag_name} already exists!" msg += " To delete run: `git push --delete origin {tag_name}`" raise ValueError(msg) return version
def test_get_version_python(py_package): assert util.get_version() == "0.0.1" util.bump_version("0.0.2a0") assert util.get_version() == "0.0.2a0"
def test_bump_version(py_package): for spec in ["1.0.1", "1.0.1.dev1", "1.0.3a4"]: util.bump_version(spec) assert util.get_version() == spec