63 lines
2.5 KiB
Python
63 lines
2.5 KiB
Python
"""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 == ""
|
|
assert settings.ssh_key_directory == ""
|
|
assert settings.ssh_key_name == ""
|
|
assert settings.ssh_key_path == ""
|
|
|
|
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"
|
|
|
|
def test_ssh_key_path_joins_directory_and_name(self):
|
|
env = {"SSH_KEY_DIRECTORY": "/root/.ssh", "SSH_KEY_NAME": "id_ed25519"}
|
|
with patch.dict(os.environ, env, clear=True):
|
|
settings = Settings(_env_file=None)
|
|
assert settings.ssh_key_path == "/root/.ssh/id_ed25519"
|