55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
from ntr_fetcher.config import Settings
|
|
|
|
|
|
def test_settings_defaults():
|
|
settings = Settings(admin_token="test-secret")
|
|
assert settings.port == 8000
|
|
assert settings.host == "127.0.0.1"
|
|
assert settings.db_path == "./ntr_fetcher.db"
|
|
assert settings.poll_interval_seconds == 3600
|
|
assert settings.soundcloud_user == "nicktherat"
|
|
assert settings.show_day == 2
|
|
assert settings.show_hour == 22
|
|
|
|
|
|
def test_settings_from_env(monkeypatch):
|
|
monkeypatch.setenv("NTR_PORT", "9090")
|
|
monkeypatch.setenv("NTR_HOST", "0.0.0.0")
|
|
monkeypatch.setenv("NTR_ADMIN_TOKEN", "my-secret")
|
|
monkeypatch.setenv("NTR_SOUNDCLOUD_USER", "someoneelse")
|
|
settings = Settings()
|
|
assert settings.port == 9090
|
|
assert settings.host == "0.0.0.0"
|
|
assert settings.admin_token == "my-secret"
|
|
assert settings.soundcloud_user == "someoneelse"
|
|
|
|
|
|
def test_settings_admin_token_required():
|
|
import pytest
|
|
with pytest.raises(Exception):
|
|
Settings()
|
|
|
|
|
|
def test_dashboard_config_absent(monkeypatch):
|
|
monkeypatch.setenv("NTR_ADMIN_TOKEN", "tok")
|
|
monkeypatch.delenv("NTR_WEB_USER", raising=False)
|
|
monkeypatch.delenv("NTR_WEB_PASSWORD", raising=False)
|
|
monkeypatch.delenv("NTR_SECRET_KEY", raising=False)
|
|
s = Settings()
|
|
assert s.web_user is None
|
|
assert s.web_password is None
|
|
assert s.secret_key is None
|
|
assert s.dashboard_enabled is False
|
|
|
|
|
|
def test_dashboard_config_present(monkeypatch):
|
|
monkeypatch.setenv("NTR_ADMIN_TOKEN", "tok")
|
|
monkeypatch.setenv("NTR_WEB_USER", "nick")
|
|
monkeypatch.setenv("NTR_WEB_PASSWORD", "secret")
|
|
monkeypatch.setenv("NTR_SECRET_KEY", "signme")
|
|
s = Settings()
|
|
assert s.web_user == "nick"
|
|
assert s.web_password == "secret"
|
|
assert s.secret_key == "signme"
|
|
assert s.dashboard_enabled is True
|