Fix BT Locate startup/map rendering and CelesTrak import reliability

This commit is contained in:
Smittix
2026-02-20 17:35:57 +00:00
parent c0221ba53d
commit c3bf30b49c
6 changed files with 331 additions and 141 deletions
+35 -14
View File
@@ -128,13 +128,21 @@ class TestLocateTarget:
device.name = None
assert target.matches(device) is True
def test_match_by_mac_case_insensitive(self):
target = LocateTarget(mac_address='aa:bb:cc:dd:ee:ff')
device = MagicMock()
device.device_id = 'other'
device.address = 'AA:BB:CC:DD:EE:FF'
device.name = None
assert target.matches(device) is True
def test_match_by_mac_case_insensitive(self):
target = LocateTarget(mac_address='aa:bb:cc:dd:ee:ff')
device = MagicMock()
device.device_id = 'other'
device.address = 'AA:BB:CC:DD:EE:FF'
device.name = None
assert target.matches(device) is True
def test_match_by_mac_without_separators(self):
target = LocateTarget(mac_address='aabbccddeeff')
device = MagicMock()
device.device_id = 'other'
device.address = 'AA:BB:CC:DD:EE:FF'
device.name = None
assert target.matches(device) is True
def test_match_by_name_pattern(self):
target = LocateTarget(name_pattern='iPhone')
@@ -243,7 +251,7 @@ class TestLocateSession:
assert status['detection_count'] == 0
class TestModuleLevelSessionManagement:
class TestModuleLevelSessionManagement:
"""Test module-level session functions."""
@patch('utils.bt_locate.get_bluetooth_scanner')
@@ -261,9 +269,9 @@ class TestModuleLevelSessionManagement:
assert get_locate_session() is None
@patch('utils.bt_locate.get_bluetooth_scanner')
def test_start_replaces_existing_session(self, mock_get_scanner):
mock_scanner = MagicMock()
mock_get_scanner.return_value = mock_scanner
def test_start_replaces_existing_session(self, mock_get_scanner):
mock_scanner = MagicMock()
mock_get_scanner.return_value = mock_scanner
target1 = LocateTarget(mac_address='AA:BB:CC:DD:EE:FF')
session1 = start_locate_session(target1)
@@ -273,6 +281,19 @@ class TestModuleLevelSessionManagement:
assert get_locate_session() is session2
assert session1.active is False
assert session2.active is True
stop_locate_session()
assert session2.active is True
stop_locate_session()
@patch('utils.bt_locate.get_bluetooth_scanner')
def test_start_raises_when_scanner_cannot_start(self, mock_get_scanner):
mock_scanner = MagicMock()
mock_scanner.is_scanning = False
mock_scanner.start_scan.return_value = False
status = MagicMock()
status.error = 'No adapter'
mock_scanner.get_status.return_value = status
mock_get_scanner.return_value = mock_scanner
with pytest.raises(RuntimeError):
start_locate_session(LocateTarget(mac_address='AA:BB:CC:DD:EE:FF'))