Fix some of the tests

This commit is contained in:
bom 2023-02-28 13:25:47 +01:00
parent 975de636ed
commit ef51db1403
7 changed files with 26 additions and 24 deletions

View file

@ -1,5 +1,5 @@
from enum import Enum from enum import Enum
from pathlib import Path
class Config(): class Config():
def __init__(self, main_branch): def __init__(self, main_branch):
@ -49,13 +49,13 @@ class Version():
return self.version_string return self.version_string
def create_release_version(self, release_type: ReleaseType): def create_release_version(self, release_type: ReleaseType):
release_version = Version(self.version_list.copy()) release_version = Version(self.id, self.version_list.copy())
release_version.is_snapshot = self.is_snapshot release_version.is_snapshot = self.is_snapshot
release_version.increment(release_type) release_version.increment(release_type)
return release_version return release_version
def create_bump_version(self): def create_bump_version(self):
bump_version = Version(self.version_list.copy()) bump_version = Version(self.id, self.version_list.copy())
bump_version.is_snapshot = self.is_snapshot bump_version.is_snapshot = self.is_snapshot
bump_version.increment(ReleaseType.BUMP) bump_version.increment(ReleaseType.BUMP)
return bump_version return bump_version

View file

@ -26,7 +26,7 @@ class VersionRepository():
self.file_handler = self.load_file() self.file_handler = self.load_file()
version_list, is_snapshot = self.parse_file() version_list, is_snapshot = self.parse_file()
version = Version(version_list) version = Version(self.file, version_list)
version.is_snapshot = is_snapshot version.is_snapshot = is_snapshot
return version return version
@ -50,9 +50,10 @@ class ReleaseTypeRepository():
return None return None
class ReleaseRepository(): class ReleaseRepository():
def __init__(self, version_repository: VersionRepository, release_type_repository: ReleaseTypeRepository): def __init__(self, version_repository: VersionRepository, release_type_repository: ReleaseTypeRepository, main_branch: str):
self.version_repository = version_repository self.version_repository = version_repository
self.release_type_repository = release_type_repository self.release_type_repository = release_type_repository
self.main_branch = main_branch
def get_release(self) -> Release: def get_release(self) -> Release:
return Release(self.release_type_repository.get_release_type(), self.version_repository.get_version()) return Release(self.release_type_repository.get_release_type(), self.version_repository.get_version(), self.main_branch)

View file

@ -2,7 +2,7 @@ import copy
from ddadevops import DevopsBuild from ddadevops import DevopsBuild
from ddadevops import execute from ddadevops import execute
from ddadevops import gopass_field_from_path, gopass_password_from_path from ddadevops import gopass_field_from_path, gopass_password_from_path
from infrastructure import VersionRepository, GitRepository from infrastructure import VersionRepository, GitApi
from services import InitReleaseService, PrepareReleaseService, TagAndPushReleaseService from services import InitReleaseService, PrepareReleaseService, TagAndPushReleaseService
from domain import ReleaseType, Version from domain import ReleaseType, Version
@ -28,7 +28,7 @@ class ReleaseMixin(DevopsBuild):
self.config_file = release_mixin_config['config_file'] self.config_file = release_mixin_config['config_file']
self.main_branch = release_mixin_config['main_branch'] self.main_branch = release_mixin_config['main_branch']
self.version_repo = VersionRepository(self.config_file) self.version_repo = VersionRepository(self.config_file)
self.git_repo = GitRepository() self.git_api = GitApi()
self.release_version = None self.release_version = None
self.bump_version = None self.bump_version = None
self.commit_string = None self.commit_string = None
@ -39,7 +39,7 @@ class ReleaseMixin(DevopsBuild):
self.bump_version = self.release_version.create_bump_version() self.bump_version = self.release_version.create_bump_version()
def prepare_release(self): def prepare_release(self):
prepare_release_service = PrepareReleaseService(self.version_repo, self.git_repo, self.config_file, self.main_branch) prepare_release_service = PrepareReleaseService(self.version_repo, self.git_api, self.config_file, self.main_branch)
if self.release_version is None or self.bump_version is None: if self.release_version is None or self.bump_version is None:
raise Exception('prepare_release was called before init_release') raise Exception('prepare_release was called before init_release')
@ -48,5 +48,5 @@ class ReleaseMixin(DevopsBuild):
prepare_release_service.write_and_commit_bump(self.bump_version) prepare_release_service.write_and_commit_bump(self.bump_version)
def tag_and_push_release(self): def tag_and_push_release(self):
tag_and_push_release_service = TagAndPushReleaseService(self.git_repo) tag_and_push_release_service = TagAndPushReleaseService(self.git_api)
tag_and_push_release_service.tag_and_push_release(self.release_version) tag_and_push_release_service.tag_and_push_release(self.release_version)

View file

@ -1,5 +1,5 @@
from pathlib import Path from pathlib import Path
from infrastructure import ReleaseRepository from infrastructure import ReleaseRepository, GitApi
from domain import Version, ReleaseType from domain import Version, ReleaseType
@ -34,13 +34,13 @@ class PrepareReleaseService():
class TagAndPushReleaseService(): class TagAndPushReleaseService():
def __init__(self, git_repository: GitRepository): def __init__(self, git_api: GitApi):
self.git_repository = git_repository self.git_api = git_api
def tag_and_push_release(self, release_version: Version): def tag_and_push_release(self, release_version: Version):
annotation = 'v' + release_version.get_version_string() annotation = 'v' + release_version.get_version_string()
message = 'Release ' + annotation message = 'Release ' + annotation
self.git_repository.tag_annotated(annotation, message, 1) self.git_api.tag_annotated(annotation, message, 1)
# self.git_repository.push() # self.git_repository.push()

View file

@ -20,33 +20,33 @@ sys.path.append(parent)
from domain import Version, ReleaseType from domain import Version, ReleaseType
from infrastructure import VersionRepository from infrastructure import VersionRepository
def test_version(): def test_version(tmp_path):
version = Version([1, 2, 3]) version = Version(tmp_path, [1, 2, 3])
version.increment(ReleaseType.SNAPSHOT) version.increment(ReleaseType.SNAPSHOT)
assert version.get_version_string() == "1.2.3-SNAPSHOT" assert version.get_version_string() == "1.2.3-SNAPSHOT"
assert version.version_list == [1, 2, 3] assert version.version_list == [1, 2, 3]
assert version.is_snapshot assert version.is_snapshot
version = Version([1, 2, 3]) version = Version(tmp_path, [1, 2, 3])
version.increment(ReleaseType.BUMP) version.increment(ReleaseType.BUMP)
assert version.get_version_string() == "1.2.4-SNAPSHOT" assert version.get_version_string() == "1.2.4-SNAPSHOT"
assert version.version_list == [1, 2, 4] assert version.version_list == [1, 2, 4]
assert version.is_snapshot assert version.is_snapshot
version = Version([1, 2, 3]) version = Version(tmp_path, [1, 2, 3])
version.increment(ReleaseType.PATCH) version.increment(ReleaseType.PATCH)
assert version.get_version_string() == "1.2.4" assert version.get_version_string() == "1.2.4"
assert version.version_list == [1, 2, 4] assert version.version_list == [1, 2, 4]
assert not version.is_snapshot assert not version.is_snapshot
version = Version([1, 2, 3]) version = Version(tmp_path, [1, 2, 3])
version.increment(ReleaseType.MINOR) version.increment(ReleaseType.MINOR)
assert version.get_version_string() == "1.3.0" assert version.get_version_string() == "1.3.0"
assert version.version_list == [1, 3, 0] assert version.version_list == [1, 3, 0]
assert not version.is_snapshot assert not version.is_snapshot
version = Version([1, 2, 3]) version = Version(tmp_path, [1, 2, 3])
version.increment(ReleaseType.MAJOR) version.increment(ReleaseType.MAJOR)
assert version.get_version_string() == "2.0.0" assert version.get_version_string() == "2.0.0"
assert version.version_list == [2, 0, 0] assert version.version_list == [2, 0, 0]

View file

@ -115,7 +115,7 @@ def test_release_repository(tmp_path):
f.write_text(contents) f.write_text(contents)
# test # test
sut = ReleaseRepository(VersionRepository(f), ReleaseTypeRepository(TestGitApi('MINOR test'))) sut = ReleaseRepository(VersionRepository(f), ReleaseTypeRepository(TestGitApi('MINOR test')), 'main')
release = sut.get_release() release = sut.get_release()
assert release is not None assert release is not None

View file

@ -19,7 +19,8 @@ sys.path.append(parent)
from services import InitReleaseService from services import InitReleaseService
from domain import ReleaseType from domain import ReleaseType
from infrastructure import VersionRepository from infrastructure import VersionRepository, ReleaseRepository, ReleaseTypeRepository
from infrastructure_api import GitApi
def test_init_release_service(tmp_path): def test_init_release_service(tmp_path):
# init # init
@ -30,9 +31,9 @@ def test_init_release_service(tmp_path):
f = tmp_path / file_name f = tmp_path / file_name
f.write_text(contents) f.write_text(contents)
repo = VersionRepository(f) repo = ReleaseRepository(VersionRepository(f), ReleaseTypeRepository(GitApi()), 'main')
release_service = InitReleaseService(repo) release_service = InitReleaseService(repo)
version = release_service.create_release_version(commit_string='Release MINOR') version = release_service.get_version().create_release_version(ReleaseType.MINOR)
assert "123.124.0" in version.get_version_string() assert "123.124.0" in version.get_version_string()