Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions tests/tools/private/release/release_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,5 +210,62 @@ def test_get_latest_version_only_rc_tags(self, mock_get_tags):
releaser.get_latest_version()


class DetermineNextVersionTest(unittest.TestCase):
def setUp(self):
self.tmpdir = pathlib.Path(tempfile.mkdtemp())
self.original_cwd = os.getcwd()
self.addCleanup(shutil.rmtree, self.tmpdir)

os.chdir(self.tmpdir)
# NOTE: On windows, this must be done before files are deleted.
self.addCleanup(os.chdir, self.original_cwd)

self.mock_get_latest_version = patch(
"tools.private.release.release.get_latest_version"
).start()
self.addCleanup(patch.stopall)

def test_no_markers(self):
(self.tmpdir / "mock_file.bzl").write_text("no markers here")
self.mock_get_latest_version.return_value = "1.2.3"

next_version = releaser.determine_next_version()

self.assertEqual(next_version, "1.2.4")

def test_only_patch(self):
(self.tmpdir / "mock_file.bzl").write_text(
":::{versionchanged} VERSION_NEXT_PATCH"
)
self.mock_get_latest_version.return_value = "1.2.3"

next_version = releaser.determine_next_version()

self.assertEqual(next_version, "1.2.4")

def test_only_feature(self):
(self.tmpdir / "mock_file.bzl").write_text(
":::{versionadded} VERSION_NEXT_FEATURE"
)
self.mock_get_latest_version.return_value = "1.2.3"

next_version = releaser.determine_next_version()

self.assertEqual(next_version, "1.3.0")

def test_both_markers(self):
(self.tmpdir / "mock_file_patch.bzl").write_text(
":::{versionchanged} VERSION_NEXT_PATCH"
)
(self.tmpdir / "mock_file_feature.bzl").write_text(
":::{versionadded} VERSION_NEXT_FEATURE"
)
self.mock_get_latest_version.return_value = "1.2.3"

next_version = releaser.determine_next_version()

self.assertEqual(next_version, "1.3.0")


if __name__ == "__main__":
unittest.main()
8 changes: 4 additions & 4 deletions tools/private/release/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,10 @@ def create_parser():


def main():
# Change to the workspace root so the script can be run using `bazel run`
if "BUILD_WORKSPACE_DIRECTORY" in os.environ:
os.chdir(os.environ["BUILD_WORKSPACE_DIRECTORY"])

parser = create_parser()
args = parser.parse_args()

Expand All @@ -179,10 +183,6 @@ def main():
version = determine_next_version()
print(f"Determined next version: {version}")

# Change to the workspace root so the script can be run using `bazel run`
if "BUILD_WORKSPACE_DIRECTORY" in os.environ:
os.chdir(os.environ["BUILD_WORKSPACE_DIRECTORY"])

print("Updating changelog ...")
release_date = datetime.date.today().strftime("%Y-%m-%d")
update_changelog(version, release_date)
Expand Down