Everything is clean. Here's what was added:
Test infrastructure:
- Added pytest to dev dependencies in pyproject.toml
- Created tests/ directory with tests/test_config.py
- Added make test target (runs uv run pytest tests/ -v)
Test cases (13 tests covering _expand_env_vars):
- Plain strings and non-string types pass through unchanged
- Simple ${VAR} substitution
- Variables embedded in strings and multiple variables per string
- ${VAR:-default} syntax: uses default when unset, actual value when set, supports empty default
- Unset variable without default calls sys.exit(1)
- Recursive expansion through dicts, lists, and nested structures
Run tests with make test or uv run pytest tests/ -v.