File size: 1,283 Bytes
96f8c0a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""Tests for the Settings service."""

from __future__ import annotations

from pathlib import Path

from src.app.settings import AppMode, Settings


class TestSettings:
    def test_default_mode_is_local(self, tmp_storage: Path) -> None:
        s = Settings(storage_root=tmp_storage)
        assert s.app_mode == AppMode.LOCAL

    def test_db_path_derived(self, tmp_storage: Path) -> None:
        s = Settings(storage_root=tmp_storage, db_name="test.db")
        assert s.db_path == tmp_storage / "test.db"

    def test_ensure_directories_creates_all(self, tmp_storage: Path) -> None:
        s = Settings(storage_root=tmp_storage)
        s.ensure_directories()
        assert s.jobs_dir.exists()
        assert s.providers_dir.exists()
        assert s.exports_dir.exists()
        assert s.cache_dir.exists()

    def test_allowed_mime_types_set(self, tmp_storage: Path) -> None:
        s = Settings(storage_root=tmp_storage)
        mimes = s.allowed_mime_types_set
        assert "image/png" in mimes
        assert "image/jpeg" in mimes

    def test_space_mode_overrides_storage_root(self, monkeypatch: object) -> None:

        s = Settings(app_mode="space", storage_root=Path("./data"))
        assert s.storage_root == Path("/data")
        assert s.is_space is True