feat: implement Textual TUI and SQLite database for sensor management
This commit is contained in:
57
tests/test_discovery_manager.py
Normal file
57
tests/test_discovery_manager.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import pytest
|
||||
import os
|
||||
from pathlib import Path
|
||||
from sensorpajen.discovery_manager import DiscoveryManager, DiscoveredSensor
|
||||
|
||||
def test_discovery_manager_init(tmp_path):
|
||||
db_file = tmp_path / "sensors.db"
|
||||
manager = DiscoveryManager(str(db_file))
|
||||
assert db_file.exists()
|
||||
|
||||
def test_discovery_manager_add_new(tmp_path):
|
||||
db_file = tmp_path / "sensors.db"
|
||||
manager = DiscoveryManager(str(db_file))
|
||||
|
||||
mac = "AA:BB:CC:DD:EE:FF"
|
||||
manager.add_or_update(mac, "ATC_123456", -70, 22.5, 45, 100, 3.0)
|
||||
|
||||
pending = manager.get_pending()
|
||||
assert len(pending) == 1
|
||||
sensor = pending[0]
|
||||
assert sensor.mac == mac
|
||||
assert sensor.name == "ATC_123456"
|
||||
assert sensor.sample_reading["temperature"] == 22.5
|
||||
assert sensor.status == "pending"
|
||||
assert sensor.count == 1
|
||||
|
||||
def test_discovery_manager_update_existing(tmp_path):
|
||||
db_file = tmp_path / "sensors.db"
|
||||
manager = DiscoveryManager(str(db_file))
|
||||
|
||||
mac = "AA:BB:CC:DD:EE:FF"
|
||||
manager.add_or_update(mac, "ATC_123456", -70, 22.5, 45, 100, 3.0)
|
||||
|
||||
# Update with new values
|
||||
manager.add_or_update(mac, "ATC_123456", -60, 23.0, 40, 99, 2.9)
|
||||
|
||||
pending = manager.get_pending()
|
||||
assert len(pending) == 1
|
||||
sensor = pending[0]
|
||||
assert sensor.rssi == -60
|
||||
assert sensor.sample_reading["temperature"] == 23.0
|
||||
assert sensor.sample_reading["humidity"] == 40.0
|
||||
assert sensor.count == 2
|
||||
|
||||
def test_discovery_manager_persistence(tmp_path):
|
||||
db_file = tmp_path / "sensors.db"
|
||||
manager = DiscoveryManager(str(db_file))
|
||||
|
||||
mac = "AA:BB:CC:DD:EE:FF"
|
||||
manager.add_or_update(mac, "ATC_123456", -70, 22.5, 45, 100, 3.0)
|
||||
|
||||
# Create new manager and load from same DB
|
||||
manager2 = DiscoveryManager(str(db_file))
|
||||
pending = manager2.get_pending()
|
||||
assert len(pending) == 1
|
||||
assert pending[0].mac == mac
|
||||
assert pending[0].name == "ATC_123456"
|
||||
Reference in New Issue
Block a user