| |
| |
| """Tests for environment-driven configuration.""" |
| from __future__ import annotations |
|
|
| import pytest |
|
|
| from wordpress_agent.config import Settings |
|
|
|
|
| def test_settings_load_from_env(monkeypatch: pytest.MonkeyPatch) -> None: |
| monkeypatch.setenv("WP_BASE_URL", "https://rage.pythai.net") |
| monkeypatch.setenv("WP_USER", "codephreak") |
| monkeypatch.setenv("WP_APP_PASSWORD", "abcd-efgh-ijkl-mnop-qrst-uvwx") |
| s = Settings() |
| assert s.base_url_str == "https://rage.pythai.net" |
| assert s.user == "codephreak" |
| assert s.app_password_value == "abcd-efgh-ijkl-mnop-qrst-uvwx" |
| assert s.retry_count == 3 |
| assert s.timeout == 30.0 |
|
|
|
|
| def test_settings_strip_trailing_slash(monkeypatch: pytest.MonkeyPatch) -> None: |
| monkeypatch.setenv("WP_BASE_URL", "https://rage.pythai.net/") |
| monkeypatch.setenv("WP_USER", "codephreak") |
| monkeypatch.setenv("WP_APP_PASSWORD", "abcd-efgh-ijkl-mnop-qrst-uvwx") |
| s = Settings() |
| assert s.base_url_str == "https://rage.pythai.net" |
|
|
|
|
| def test_settings_secret_not_repr_leaked(monkeypatch: pytest.MonkeyPatch) -> None: |
| monkeypatch.setenv("WP_BASE_URL", "https://rage.pythai.net") |
| monkeypatch.setenv("WP_USER", "codephreak") |
| monkeypatch.setenv("WP_APP_PASSWORD", "leak-me-not") |
| s = Settings() |
| assert "leak-me-not" not in repr(s) |
|
|