Files
Remote-Terminal-for-MeshCore/tests/test_version_info.py

42 lines
2.0 KiB
Python

from app import version_info
class TestAppBuildInfo:
def setup_method(self):
version_info.get_app_build_info.cache_clear()
def teardown_method(self):
version_info.get_app_build_info.cache_clear()
def test_prefers_package_metadata_and_git(self, monkeypatch):
monkeypatch.setattr(version_info, "_package_metadata_version", lambda: "3.4.1")
monkeypatch.setattr(version_info, "_env_version", lambda: "3.4.0-env")
monkeypatch.setattr(version_info, "_build_info_version", lambda build_info: "3.3.0-build")
monkeypatch.setattr(version_info, "_pyproject_version", lambda root: "3.2.0-pyproject")
monkeypatch.setattr(version_info, "_git_output", lambda root, *args: "abcdef12")
monkeypatch.setattr(version_info, "_env_commit_hash", lambda: "fedcba0987654321")
monkeypatch.setattr(version_info, "_build_info_commit_hash", lambda build_info: "11223344")
info = version_info.get_app_build_info()
assert info.version == "3.4.1"
assert info.version_source == "package_metadata"
assert info.commit_hash == "abcdef12"
assert info.commit_source == "git"
def test_falls_back_to_pyproject_and_build_info(self, monkeypatch):
monkeypatch.setattr(version_info, "_package_metadata_version", lambda: None)
monkeypatch.setattr(version_info, "_env_version", lambda: None)
monkeypatch.setattr(version_info, "_build_info_version", lambda build_info: None)
monkeypatch.setattr(version_info, "_pyproject_version", lambda root: "3.2.0")
monkeypatch.setattr(version_info, "_git_output", lambda root, *args: None)
monkeypatch.setattr(version_info, "_env_commit_hash", lambda: None)
monkeypatch.setattr(version_info, "_build_info_commit_hash", lambda build_info: "cf1a55e2")
info = version_info.get_app_build_info()
assert info.version == "3.2.0"
assert info.version_source == "pyproject"
assert info.commit_hash == "cf1a55e2"
assert info.commit_source == "build_info"