From 86c66dc7f7818ace98014dd098d4081ed5ecef58 Mon Sep 17 00:00:00 2001 From: bom Date: Thu, 9 Feb 2023 13:33:56 +0100 Subject: [PATCH] Implement tests for file handling --- file_handlers.py | 6 +++--- test/config.gradle | 2 +- test/test_version_class.py | 33 +++++++++++++++++++++++++++++---- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/file_handlers.py b/file_handlers.py index fe6495f..8248e8a 100644 --- a/file_handlers.py +++ b/file_handlers.py @@ -6,11 +6,11 @@ class FileHandler(ABC): @classmethod def from_file_path(cls, file_path): - config_file_type = file_path.split('.')[-1] + config_file_type = file_path.suffix match config_file_type: - case 'json': + case '.json': file_handler = JsonFileHandler() - case 'gradle': + case '.gradle': file_handler = GradleFileHandler() case _: raise Exception(f'The file type "{config_file_type}" is not implemented') diff --git a/test/config.gradle b/test/config.gradle index 9123ba2..5c6a467 100644 --- a/test/config.gradle +++ b/test/config.gradle @@ -1,2 +1,2 @@ -version = "12.4.678" \ No newline at end of file +version = "12.4.678" diff --git a/test/test_version_class.py b/test/test_version_class.py index f90446c..55b6df2 100644 --- a/test/test_version_class.py +++ b/test/test_version_class.py @@ -1,4 +1,5 @@ from devops_test import Version, ReleaseLevel +from pathlib import Path def test_version(): version = Version([1, 2, 3], False) @@ -25,12 +26,36 @@ def test_version(): assert version.get() == "2.0.0" -def test_gradle(): - # validate_values() - version = Version.from_file('build.gradle') +def test_gradle(tmp_path): + # init + file_name = 'config.gradle' + with open(f'test/{file_name}', 'r') as gradle_file: + contents = gradle_file.read() + + f = tmp_path / file_name + f.write_text(contents) + + # test + version = Version.from_file(f) + version.increment(ReleaseLevel.SNAPSHOT) + version.to_file() + # check + assert 'version = "12.4.678-SNAPSHOT"' in f.read_text() + +def test_json(tmp_path): + # init + file_name = 'config.json' + with open(f'test/{file_name}', 'r') as gradle_file: + contents = gradle_file.read() + f = tmp_path / file_name + f.write_text(contents) + # test + version = Version.from_file(f) version.increment(ReleaseLevel.SNAPSHOT) version.to_file() - print(version.get()) \ No newline at end of file + + # check + assert '"version": "123.123.456-SNAPSHOT"' in f.read_text() \ No newline at end of file