From 135fe34cb88f0aa1e98cadeef5429c95611ce070 Mon Sep 17 00:00:00 2001 From: bennetrr Date: Fri, 5 Apr 2024 16:39:15 +0200 Subject: [PATCH] test: Add tag assert --- tests/test_action.py | 36 +++++++++++++++++++++++------------ tests/utils/action_wrapper.py | 12 +++++++++++- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/tests/test_action.py b/tests/test_action.py index 9b705e5..8a02015 100644 --- a/tests/test_action.py +++ b/tests/test_action.py @@ -46,7 +46,8 @@ def test_initial(self): version_name='v0.0.0-pre', previous_version='', previous_version_name='', - has_changes=False + has_changes=False, + latest_tag_name=None ) args_beta = ActionArguments( @@ -61,7 +62,8 @@ def test_initial(self): version_name='v0.0.0-beta', previous_version='', previous_version_name='', - has_changes=False + has_changes=False, + latest_tag_name=None ) args_prod = ActionArguments( @@ -76,7 +78,8 @@ def test_initial(self): version_name='v0.0.0', previous_version='', previous_version_name='', - has_changes=False + has_changes=False, + latest_tag_name=None ) # Act @@ -108,7 +111,8 @@ def test_first_fix(self): version_name='v0.0.1-pre', previous_version='', previous_version_name='', - has_changes=True + has_changes=True, + latest_tag_name='v0.0.1-pre' ) args_beta = ActionArguments( @@ -123,7 +127,8 @@ def test_first_fix(self): version_name='v0.0.1-beta', previous_version='', previous_version_name='', - has_changes=False + has_changes=False, + latest_tag_name='v0.0.1-beta' ) args_prod = ActionArguments( @@ -138,7 +143,8 @@ def test_first_fix(self): version_name='v0.0.1', previous_version='', previous_version_name='', - has_changes=False + has_changes=False, + latest_tag_name='v0.0.1' ) # Act @@ -172,7 +178,8 @@ def test_first_feature(self): version_name='v0.1.0-pre', previous_version='', previous_version_name='', - has_changes=True + has_changes=True, + latest_tag_name='v0.1.0-pre' ) args_beta = ActionArguments( @@ -187,7 +194,8 @@ def test_first_feature(self): version_name='v0.1.0-beta', previous_version='', previous_version_name='', - has_changes=False + has_changes=False, + latest_tag_name='v0.1.0-beta' ) args_prod = ActionArguments( @@ -202,7 +210,8 @@ def test_first_feature(self): version_name='v0.1.0', previous_version='', previous_version_name='', - has_changes=False + has_changes=False, + latest_tag_name='v0.1.0' ) # Act @@ -236,7 +245,8 @@ def test_first_breaking(self): version_name='v1.0.0-pre', previous_version='', previous_version_name='', - has_changes=True + has_changes=True, + latest_tag_name='v1.0.0-pre' ) args_beta = ActionArguments( @@ -251,7 +261,8 @@ def test_first_breaking(self): version_name='v1.0.0-beta', previous_version='', previous_version_name='', - has_changes=False + has_changes=False, + latest_tag_name='v1.0.0-beta' ) args_prod = ActionArguments( @@ -266,7 +277,8 @@ def test_first_breaking(self): version_name='v1.0.0', previous_version='', previous_version_name='', - has_changes=False + has_changes=False, + latest_tag_name='v1.0.0' ) # Act diff --git a/tests/utils/action_wrapper.py b/tests/utils/action_wrapper.py index 2e1ccaf..ad8b8d7 100644 --- a/tests/utils/action_wrapper.py +++ b/tests/utils/action_wrapper.py @@ -7,6 +7,8 @@ from pathlib import Path from typing import Any +from git import Repo + logger = logging.getLogger('wemogy.get-release-version-action.tests.wrapper') @@ -57,6 +59,9 @@ class ActionOutputs: has_changes: bool """If any relevant changes got detected.""" + latest_tag_name: str | None + """The name of the newest git tag or None, if no tags exist.""" + @classmethod def from_github_output(cls, github_output_file: Path): lines = github_output_file.read_text().splitlines() @@ -77,7 +82,12 @@ def from_github_output(cls, github_output_file: Path): ctor_args[name] = value - return cls(**ctor_args) + try: + latest_tag_name = sorted(Repo(os.getcwd()).tags, key=lambda t: t.commit.committed_datetime, reverse=True)[0].name + except IndexError: + latest_tag_name = None + + return cls(**ctor_args, latest_tag_name=latest_tag_name) def run_action(args: ActionArguments, python_executable: Path = None, python_path: Path = None, script_path: Path = None) -> ActionOutputs: