prole/tests/installer/test_registry_rescan_after_init.py
chrisfu 6232bd89ee Merge remote-tracking branch 'origin/main'
# Conflicts:
#	tests/installer/test_services_init_scripts.py
2026-03-30 00:46:56 -07:00

69 lines
1.9 KiB
Python

from __future__ import annotations
from unittest.mock import MagicMock
class _Var:
def __init__(self, value: str = ""):
self._value = value
def get(self):
return self._value
def set(self, value):
self._value = value
def test_db_rescan_registry_status_after_init_schedules_multiple_checks():
from knoe.ui.screens.database import DatabaseScreenMixin
class _Dummy(DatabaseScreenMixin):
def __init__(self):
self._scheduled: list[int] = []
self._ensure_called = 0
self._db_registry_status_label = 1
self.bg_canvas = MagicMock()
def safe_after(self, fn, delay: int = 0):
self._scheduled.append(delay)
if delay == 0:
return fn()
return None
def _ensure_db_build_registry_async(self):
self._ensure_called += 1
d = _Dummy()
d._db_rescan_registry_status_after_init()
# One immediate label update (delay 0), then a sequence of scheduled checks.
assert d._scheduled == [0, 0, 1000, 2000, 4000, 8000, 15000]
assert d._ensure_called == 1
def test_sync_namespace_suffix_from_full_is_safe_without_suffix_var():
from knoe.ui.screens.database import DatabaseScreenMixin
class _Dummy(DatabaseScreenMixin):
def __init__(self):
self.db_namespace = _Var("knoe-db")
d = _Dummy()
d._sync_namespace_suffix_from_full()
assert d.db_namespace.get() == "knoe-db"
def test_sync_namespace_suffix_from_full_updates_suffix_var_when_present():
from knoe.ui.screens.database import DatabaseScreenMixin
class _Dummy(DatabaseScreenMixin):
def __init__(self):
self.db_namespace = _Var("knoe-db")
self.db_namespace_suffix = _Var("")
d = _Dummy()
d._sync_namespace_suffix_from_full()
assert d.db_namespace_suffix.get() == "db"