PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / unit-tests (pull_request) Successful in 18s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m28s
Test Python Package / integration-tests (pull_request) Failing after 1m54s
Test Python Package / coverage-report (pull_request) Has been skipped
Require buckets to exist by default on connect, extract env_bool parsing, and document local dev overrides for secure and auto-creation settings. Co-authored-by: Cursor <[email protected]>
44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
"""Unit tests for env_bool."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from python_repositories.config.env_bool import env_bool
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("value", "expected"),
|
|
[
|
|
("true", True),
|
|
("1", True),
|
|
("yes", True),
|
|
("on", True),
|
|
("false", False),
|
|
("0", False),
|
|
("no", False),
|
|
("off", False),
|
|
],
|
|
)
|
|
def test_env_bool_parses_truthy_and_falsy(
|
|
monkeypatch: pytest.MonkeyPatch,
|
|
value: str,
|
|
expected: bool,
|
|
) -> None:
|
|
monkeypatch.setenv("TEST_BOOL", value)
|
|
assert env_bool("TEST_BOOL", default=not expected) is expected
|
|
|
|
|
|
def test_env_bool_returns_default_when_unset(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
monkeypatch.delenv("TEST_BOOL", raising=False)
|
|
assert env_bool("TEST_BOOL", default=True) is True
|
|
assert env_bool("TEST_BOOL", default=False) is False
|
|
|
|
|
|
def test_env_bool_raises_for_invalid_value(
|
|
monkeypatch: pytest.MonkeyPatch,
|
|
) -> None:
|
|
monkeypatch.setenv("TEST_BOOL", "not-a-bool")
|
|
with pytest.raises(ValueError, match="TEST_BOOL"):
|
|
env_bool("TEST_BOOL", default=False)
|