import pytest as pt from pathlib import Path from pybuilder.core import Project from src.main.python.ddadevops.release_mixin import ReleaseMixin, create_release_mixin_config from src.main.python.ddadevops.infrastructure.release_mixin import GitApi, EnvironmentApi from src.main.python.ddadevops.domain import Devops, ReleaseConfig from .helper import Helper MAIN_BRANCH = 'main' STAGE = 'test' 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 initialize(project, CONFIG_FILE): project.build_depends_on('ddadevops>=3.1.2') config = create_release_mixin_config(CONFIG_FILE, MAIN_BRANCH) config.update({'stage': STAGE, 'module': MODULE, 'project_root_path': PROJECT_ROOT_PATH, 'build_dir_name': BUILD_DIR_NAME}) build = MyBuild(project, config) return build 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_config = ReleaseConfig(MAIN_BRANCH, CONFIG_FILE, devops) build = MyBuild(project, release_config=release_config) return build 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) 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.prepare_release_service.release_repo.version_repository.get_version() # test assert "124.0.1-SNAPSHOT" in release_version.get_version_string() def test_release_mixin_environment(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) 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("Commit Message") environment_api = EnvironmentApi() environment_api.set("DDADEVOPS_RELEASE_TYPE", "MAJOR") build = initialize(project, th.TEST_FILE_PATH) build.prepare_release() release_version = build.prepare_release_service.release_repo.version_repository.get_version() # test assert "124.0.1-SNAPSHOT" in release_version.get_version_string() # tear down environment_api.set("DDADEVOPS_RELEASE_TYPE", "")