from devops_test import Version, ReleaseLevel from pathlib import Path def test_version(): version = Version([1, 2, 3], False) version.increment(ReleaseLevel.SNAPSHOT) assert version.get() == "1.2.3-SNAPSHOT" assert version.version == [1, 2, 3] assert version.is_snapshot version.increment(ReleaseLevel.PATCH) assert version.get() == "1.2.4" assert version.version == [1, 2, 4] assert not version.is_snapshot version.increment(ReleaseLevel.SNAPSHOT) assert version.get() == "1.2.4-SNAPSHOT" version.increment(ReleaseLevel.SNAPSHOT) assert version.get() == "1.2.4-SNAPSHOT" version.increment(ReleaseLevel.MINOR) assert version.get() == "1.3.0" version.increment(ReleaseLevel.MAJOR) assert version.get() == "2.0.0" def test_gradle(tmp_path): # init file_name = 'config.gradle' with open(f'test/resources/{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/resources/{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": "123.123.456-SNAPSHOT"' in f.read_text() def test_clojure(tmp_path): # init file_name = 'config.clj' with open(f'test/resources/{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 '1.1.3-SNAPSHOT' in f.read_text() def test_python(tmp_path): # init file_name = 'config.py' with open(f'test/resources/{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 '3.1.3-SNAPSHOT' in f.read_text()