From df1200de4a5a77babe090e36cc73e8a448f23845 Mon Sep 17 00:00:00 2001 From: Michael Jerger Date: Tue, 2 May 2023 08:55:09 +0200 Subject: [PATCH] bring release_mixin partially back to work --- src/main/python/ddadevops/release_mixin.py | 6 +- src/test/python/test_release_mixin.py | 71 +++++++++++++--------- 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/src/main/python/ddadevops/release_mixin.py b/src/main/python/ddadevops/release_mixin.py index 22446c9..c2d93c6 100644 --- a/src/main/python/ddadevops/release_mixin.py +++ b/src/main/python/ddadevops/release_mixin.py @@ -15,19 +15,21 @@ class ReleaseMixin(DevopsBuild): raise ValueError(f"ReleaseMixin requires MixinType.RELEASE") # TODO: move this to service + release = devops.mixins[MixinType.RELEASE] env_key = EnvironmentKeys.DDADEVOPS_RELEASE_TYPE.name environment_val_set = environment_api.get(env_key) != "" and environment_api.get(env_key) is not None if environment_val_set: release_type_repo = ReleaseTypeRepository.from_environment(environment_api) else: release_type_repo = ReleaseTypeRepository.from_git(git_api) - version_repo = VersionRepository(release.config_file) + version_repo = VersionRepository(release.release_config_file) self.release_repo = ReleaseContextRepository(version_repo, release_type_repo) # Here the initialization can happen self.prepare_release_service = PrepareReleaseService() def prepare_release(self): - release = self.release_repo.get_release(self.main_branch) + devops = self.repo.get_devops(self.project) + release = devops.mixins[MixinType.RELEASE] self.prepare_release_service.write_and_commit_release(release, self.release_repo.version_repository) self.prepare_release_service.write_and_commit_bump(release, self.release_repo.version_repository) diff --git a/src/test/python/test_release_mixin.py b/src/test/python/test_release_mixin.py index b0772a3..2e13ea6 100644 --- a/src/test/python/test_release_mixin.py +++ b/src/test/python/test_release_mixin.py @@ -18,11 +18,30 @@ PROJECT_ROOT_PATH = "." MODULE = "test" BUILD_DIR_NAME = "build_dir" -# def change_test_dir( tmp_path: Path, monkeypatch: pt.MonkeyPatch): -# monkeypatch.chdir(tmp_path) -# class MyBuild(ReleaseMixin): -# pass +def change_test_dir(tmp_path: Path, monkeypatch: pt.MonkeyPatch): + monkeypatch.chdir(tmp_path) + + +def initialize_with_object(project, CONFIG_FILE): + project.build_depends_on("ddadevops>=3.1.2") + build = ReleaseMixin( + project, + devops_config( + { + "name": "release_test", + "stage": "test", + "module": MODULE, + "project_root_path": PROJECT_ROOT_PATH, + "build_types": [], + "mixin_types": ["RELEASE"], + "build_dir_name": BUILD_DIR_NAME, + "release_main_branch": MAIN_BRANCH, + "release_config_file": CONFIG_FILE, + } + ), + ) + return build def test_release_mixin(tmp_path): @@ -39,39 +58,31 @@ def test_release_mixin(tmp_path): } ), ) - sut.initialize_build_dir() - assert os.path.exists(f"{devops_build.build_path()}") + assert sut is not None -# def initialize_with_object(project, CONFIG_FILE): -# project.build_depends_on('ddadevops>=3.1.2') -# devops = Devops(STAGE, PROJECT_ROOT_PATH, MODULE, "release_test", BUILD_DIR_NAME) -# release = Release(devops, MAIN_BRANCH, CONFIG_FILE) -# build = MyBuild(project, release) -# return build +def test_release_mixin_git(tmp_path: Path, monkeypatch: pt.MonkeyPatch): + # init + th = ResourceHelper() + th.copy_files(th.TEST_FILE_PATH, tmp_path) + th.TEST_FILE_PATH = tmp_path / th.TEST_FILE_NAME -# def test_release_mixin_git(tmp_path: Path, monkeypatch: pt.MonkeyPatch): - -# # init -# th = Helper() -# th.copy_files(th.TEST_FILE_PATH, tmp_path) -# th.TEST_FILE_PATH = tmp_path / th.TEST_FILE_NAME + change_test_dir(tmp_path, monkeypatch) + project = Project(tmp_path) -# change_test_dir(tmp_path, monkeypatch) -# project = Project(tmp_path) + git_api = GitApi() + git_api.init() + git_api.set_user_config("ex.ample@mail.com", "Ex Ample") + git_api.add_file(th.TEST_FILE_NAME) + git_api.commit("MAJOR release") -# git_api = GitApi() -# git_api.init() -# git_api.set_user_config("ex.ample@mail.com", "Ex Ample") -# git_api.add_file(th.TEST_FILE_NAME) -# git_api.commit("MAJOR release") + build = initialize_with_object(project, th.TEST_FILE_PATH) + build.prepare_release() + release_version = build.release_repo.version_repository.get_version() -# build = initialize_with_object(project, th.TEST_FILE_PATH) -# build.prepare_release() -# release_version = build.release_repo.version_repository.get_version() + # test + assert "124.0.1-SNAPSHOT" in release_version.get_version_string() -# # test -# assert "124.0.1-SNAPSHOT" in release_version.get_version_string() # def test_release_mixin_environment(tmp_path: Path, monkeypatch: pt.MonkeyPatch):