90 lines
2.9 KiB
Python
90 lines
2.9 KiB
Python
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", "")
|