"""Unit tests for config.py settings loading.""" import os from unittest.mock import patch from media_library_viewer_api.config import Settings class TestSettings: def test_defaults(self): with patch.dict(os.environ, {}, clear=True): settings = Settings(_env_file=None) assert settings.ssh_host == "" assert settings.ssh_port == 22 assert settings.jellyfin_url == "" assert settings.jellyseerr_url == "" assert settings.log_level == "INFO" assert settings.remote_media_root == "" def test_from_env(self): env = { "JELLYFIN_URL": "https://test.example.com", "JELLYFIN_API_KEY": "key123", "JELLYSEERR_URL": "https://requests.example.com", "JELLYSEERR_API_KEY": "seerr123", "LOG_LEVEL": "DEBUG", "SSH_HOST": "192.168.1.1", "SSH_USERNAME": "testuser", "SSH_PORT": "2222", "REMOTE_MEDIA_ROOT": "/srv/media", } with patch.dict(os.environ, env, clear=True): settings = Settings(_env_file=None) assert settings.jellyfin_url == "https://test.example.com" assert settings.jellyfin_api_key == "key123" assert settings.jellyseerr_url == "https://requests.example.com" assert settings.jellyseerr_api_key == "seerr123" assert settings.log_level == "DEBUG" assert settings.ssh_host == "192.168.1.1" assert settings.ssh_username == "testuser" assert settings.ssh_port == 2222 assert settings.remote_media_root == "/srv/media" def test_media_root_property(self): env = {"REMOTE_MEDIA_ROOT": "/mnt/data"} with patch.dict(os.environ, env, clear=True): settings = Settings(_env_file=None) assert settings.media_root == "/mnt/data" def test_path_prefix_property(self): env = {"REMOTE_PATH_PREFIX": "/srv"} with patch.dict(os.environ, env, clear=True): settings = Settings(_env_file=None) assert settings.path_prefix == "/srv"