feat(tests): add comprehensive test suite for backend functionality, including database, configuration, and telemetry utilities
This commit is contained in:
64
tests/backend/test_config_manager.py
Normal file
64
tests/backend/test_config_manager.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import os
|
||||
import tempfile
|
||||
import pytest
|
||||
from meshchatx.src.backend.database import Database
|
||||
from meshchatx.src.backend.config_manager import ConfigManager
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def db():
|
||||
fd, path = tempfile.mkstemp()
|
||||
os.close(fd)
|
||||
database = Database(path)
|
||||
database.initialize()
|
||||
yield database
|
||||
database.close()
|
||||
if os.path.exists(path):
|
||||
os.remove(path)
|
||||
|
||||
|
||||
def test_config_manager_get_default(db):
|
||||
config = ConfigManager(db)
|
||||
assert config.display_name.get() == "Anonymous Peer"
|
||||
assert config.theme.get() == "light"
|
||||
assert config.lxmf_inbound_stamp_cost.get() == 8
|
||||
|
||||
|
||||
def test_config_manager_set_get(db):
|
||||
config = ConfigManager(db)
|
||||
config.display_name.set("Test User")
|
||||
assert config.display_name.get() == "Test User"
|
||||
|
||||
config.lxmf_inbound_stamp_cost.set(20)
|
||||
assert config.lxmf_inbound_stamp_cost.get() == 20
|
||||
|
||||
config.auto_announce_enabled.set(True)
|
||||
assert config.auto_announce_enabled.get() is True
|
||||
|
||||
|
||||
def test_config_manager_persistence(db):
|
||||
config = ConfigManager(db)
|
||||
config.display_name.set("Persistent User")
|
||||
|
||||
# New manager instance with same DB
|
||||
config2 = ConfigManager(db)
|
||||
assert config2.display_name.get() == "Persistent User"
|
||||
|
||||
|
||||
def test_config_manager_type_safety(db):
|
||||
config = ConfigManager(db)
|
||||
|
||||
# IntConfig
|
||||
config.lxmf_inbound_stamp_cost.set(
|
||||
"15"
|
||||
) # Should handle string to int if implementation allows or just store it
|
||||
# Looking at implementation might be better, but let's test basic set/get
|
||||
config.lxmf_inbound_stamp_cost.set(15)
|
||||
assert isinstance(config.lxmf_inbound_stamp_cost.get(), int)
|
||||
assert config.lxmf_inbound_stamp_cost.get() == 15
|
||||
|
||||
# BoolConfig
|
||||
config.auto_announce_enabled.set(True)
|
||||
assert config.auto_announce_enabled.get() is True
|
||||
config.auto_announce_enabled.set(False)
|
||||
assert config.auto_announce_enabled.get() is False
|
||||
Reference in New Issue
Block a user