Files

50 lines
1.8 KiB
Python

import os
import pytest
from config import validate, HEADERS, Config
class TestValidate:
def test_valid_config(self, env_vars):
cfg = validate()
assert isinstance(cfg, Config)
assert cfg.ics_url == "https://example.com/cal.ics"
assert cfg.baikal_url == "https://baikal.com/dav.php/calendars/user/cal/"
assert cfg.baikal_user == "user"
assert cfg.baikal_pass == "pass"
assert cfg.sync_frequency == 5
def test_default_frequency(self, monkeypatch, env_vars):
monkeypatch.delenv("SYNC_FREQUENCY", raising=False)
cfg = validate()
assert cfg.sync_frequency == 5
def test_missing_ics_url(self, monkeypatch, env_vars):
monkeypatch.delenv("ICS_URL", raising=False)
with pytest.raises(ValueError, match="ICS_URL"):
validate()
def test_missing_all_required(self, monkeypatch, env_vars):
for var in ["ICS_URL", "BAIKAL_URL", "BAIKAL_USER", "BAIKAL_PASS"]:
monkeypatch.delenv(var, raising=False)
with pytest.raises(ValueError):
validate()
def test_invalid_frequency(self, monkeypatch, env_vars):
monkeypatch.setenv("SYNC_FREQUENCY", "-1")
with pytest.raises(ValueError, match="SYNC_FREQUENCY"):
validate()
def test_frequency_zero(self, monkeypatch, env_vars):
monkeypatch.setenv("SYNC_FREQUENCY", "0")
with pytest.raises(ValueError, match="SYNC_FREQUENCY"):
validate()
def test_frequency_string(self, monkeypatch, env_vars):
monkeypatch.setenv("SYNC_FREQUENCY", "abc")
with pytest.raises(ValueError, match="SYNC_FREQUENCY"):
validate()
class TestHeaders:
def test_headers_exist(self):
assert "User-Agent" in HEADERS
assert "Unraid-Sync" in HEADERS["User-Agent"]