pypa-hatch/tests/backend/version/source/test_env.py

35 lines
1.0 KiB
Python

import pytest
from hatch.utils.structures import EnvVars
from hatchling.version.source.env import EnvSource
def test_no_variable(isolation):
source = EnvSource(str(isolation), {})
with pytest.raises(ValueError, match='option `variable` must be specified'):
source.get_version_data()
def test_variable_not_string(isolation):
source = EnvSource(str(isolation), {'variable': 1})
with pytest.raises(TypeError, match='option `variable` must be a string'):
source.get_version_data()
def test_variable_not_available(isolation):
source = EnvSource(str(isolation), {'variable': 'ENV_VERSION'})
with EnvVars(exclude=['ENV_VERSION']), pytest.raises(
RuntimeError, match='environment variable `ENV_VERSION` is not set'
):
source.get_version_data()
def test_variable_contains_version(isolation):
source = EnvSource(str(isolation), {'variable': 'ENV_VERSION'})
with EnvVars({'ENV_VERSION': '0.0.1'}):
assert source.get_version_data()['version'] == '0.0.1'