45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
"""Unit tests for the host-side configuration store."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import tempfile
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
from bot_bottle.config_store import (
|
|
CACHED_IMAGE_STALE_WARNING_DAYS,
|
|
DEFAULT_CACHED_IMAGE_STALE_WARNING_DAYS,
|
|
ConfigStore,
|
|
)
|
|
from bot_bottle.store_manager import StoreManager
|
|
|
|
|
|
class TestConfigStore(unittest.TestCase):
|
|
def test_cached_image_warning_days_defaults_to_one(self) -> None:
|
|
with tempfile.TemporaryDirectory(prefix="config-store.") as tmp:
|
|
store = ConfigStore(Path(tmp) / "bot-bottle.db")
|
|
store.migrate()
|
|
self.assertEqual(
|
|
DEFAULT_CACHED_IMAGE_STALE_WARNING_DAYS,
|
|
store.cached_image_stale_warning_days(),
|
|
)
|
|
|
|
def test_cached_image_warning_days_reads_value(self) -> None:
|
|
with tempfile.TemporaryDirectory(prefix="config-store.") as tmp:
|
|
store = ConfigStore(Path(tmp) / "bot-bottle.db")
|
|
store.migrate()
|
|
store.set(CACHED_IMAGE_STALE_WARNING_DAYS, "7")
|
|
self.assertEqual(7, store.cached_image_stale_warning_days())
|
|
|
|
def test_store_manager_includes_config_store(self) -> None:
|
|
with tempfile.TemporaryDirectory(prefix="config-store.") as tmp:
|
|
db = Path(tmp) / "bot-bottle.db"
|
|
manager = StoreManager(db)
|
|
self.assertFalse(manager.is_migrated())
|
|
manager.migrate()
|
|
self.assertTrue(manager.is_migrated())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|