fix: update test fixtures for SQLite storage migration
Some checks failed
Lint & Test / test (push) Failing after 1m33s
Some checks failed
Lint & Test / test (push) Failing after 1m33s
All store tests were passing file paths instead of Database objects after the JSON-to-SQLite migration. Updated fixtures to create temp Database instances, rewrote backup e2e tests for binary .db format, and fixed config tests for the simplified StorageConfig.
This commit is contained in:
@@ -5,6 +5,7 @@ from datetime import datetime, timezone
|
||||
import pytest
|
||||
|
||||
from wled_controller.config import Config, StorageConfig, ServerConfig, AuthConfig
|
||||
from wled_controller.storage.database import Database
|
||||
from wled_controller.storage.device_store import Device, DeviceStore
|
||||
from wled_controller.storage.sync_clock import SyncClock
|
||||
from wled_controller.storage.sync_clock_store import SyncClockStore
|
||||
@@ -37,12 +38,25 @@ def test_config_dir(tmp_path):
|
||||
|
||||
@pytest.fixture
|
||||
def temp_store_dir(tmp_path):
|
||||
"""Provide a temp directory for JSON store files, cleaned up after tests."""
|
||||
"""Provide a temp directory for store files, cleaned up after tests."""
|
||||
d = tmp_path / "stores"
|
||||
d.mkdir(parents=True, exist_ok=True)
|
||||
return d
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Database fixture
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def tmp_db(tmp_path):
|
||||
"""Provide a temporary SQLite Database instance."""
|
||||
db = Database(tmp_path / "test.db")
|
||||
yield db
|
||||
db.close()
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Config fixtures
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -55,20 +69,7 @@ def test_config(tmp_path):
|
||||
data_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
storage = StorageConfig(
|
||||
devices_file=str(data_dir / "devices.json"),
|
||||
templates_file=str(data_dir / "capture_templates.json"),
|
||||
postprocessing_templates_file=str(data_dir / "postprocessing_templates.json"),
|
||||
picture_sources_file=str(data_dir / "picture_sources.json"),
|
||||
output_targets_file=str(data_dir / "output_targets.json"),
|
||||
pattern_templates_file=str(data_dir / "pattern_templates.json"),
|
||||
color_strip_sources_file=str(data_dir / "color_strip_sources.json"),
|
||||
audio_sources_file=str(data_dir / "audio_sources.json"),
|
||||
audio_templates_file=str(data_dir / "audio_templates.json"),
|
||||
value_sources_file=str(data_dir / "value_sources.json"),
|
||||
automations_file=str(data_dir / "automations.json"),
|
||||
scene_presets_file=str(data_dir / "scene_presets.json"),
|
||||
color_strip_processing_templates_file=str(data_dir / "color_strip_processing_templates.json"),
|
||||
sync_clocks_file=str(data_dir / "sync_clocks.json"),
|
||||
database_file=str(data_dir / "test.db"),
|
||||
)
|
||||
|
||||
return Config(
|
||||
@@ -84,33 +85,33 @@ def test_config(tmp_path):
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def device_store(temp_store_dir):
|
||||
"""Provide a DeviceStore backed by a temp file."""
|
||||
return DeviceStore(temp_store_dir / "devices.json")
|
||||
def device_store(tmp_db):
|
||||
"""Provide a DeviceStore backed by a temp database."""
|
||||
return DeviceStore(tmp_db)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sync_clock_store(temp_store_dir):
|
||||
"""Provide a SyncClockStore backed by a temp file."""
|
||||
return SyncClockStore(str(temp_store_dir / "sync_clocks.json"))
|
||||
def sync_clock_store(tmp_db):
|
||||
"""Provide a SyncClockStore backed by a temp database."""
|
||||
return SyncClockStore(tmp_db)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def output_target_store(temp_store_dir):
|
||||
"""Provide an OutputTargetStore backed by a temp file."""
|
||||
return OutputTargetStore(str(temp_store_dir / "output_targets.json"))
|
||||
def output_target_store(tmp_db):
|
||||
"""Provide an OutputTargetStore backed by a temp database."""
|
||||
return OutputTargetStore(tmp_db)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def automation_store(temp_store_dir):
|
||||
"""Provide an AutomationStore backed by a temp file."""
|
||||
return AutomationStore(str(temp_store_dir / "automations.json"))
|
||||
def automation_store(tmp_db):
|
||||
"""Provide an AutomationStore backed by a temp database."""
|
||||
return AutomationStore(tmp_db)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def value_source_store(temp_store_dir):
|
||||
"""Provide a ValueSourceStore backed by a temp file."""
|
||||
return ValueSourceStore(str(temp_store_dir / "value_sources.json"))
|
||||
def value_source_store(tmp_db):
|
||||
"""Provide a ValueSourceStore backed by a temp database."""
|
||||
return ValueSourceStore(tmp_db)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user