diff options
| author | Alex Schofield <git@ajschof.me> | 2025-02-07 15:09:04 +0000 |
|---|---|---|
| committer | Alex Schofield <git@ajschof.me> | 2025-02-07 15:09:04 +0000 |
| commit | 5a12715276d7166eed0ff776a7b13b0670c8a28c (patch) | |
| tree | 402a09fdecd78b23bf5aa1276ae3a637074ca3f2 | |
| parent | 3d5fb6e074f11466bf40ce8f65f4dab4a475b0ce (diff) | |
| download | tp-logger-5a12715276d7166eed0ff776a7b13b0670c8a28c.tar.gz tp-logger-5a12715276d7166eed0ff776a7b13b0670c8a28c.zip | |
add debug functionality for viewing full BT device list
| -rw-r--r-- | src/discover.py | 18 | ||||
| -rw-r--r-- | tests/test_discover.py | 23 |
2 files changed, 35 insertions, 6 deletions
diff --git a/src/discover.py b/src/discover.py index 1632af6..e2351b3 100644 --- a/src/discover.py +++ b/src/discover.py @@ -1,15 +1,27 @@ import asyncio from bleak import BleakScanner +import os -async def discover(): +async def discover(debug=False): try: devices = await BleakScanner.discover() - return [{"name": device.name, "address": device.address} for device in devices] + if debug: + return [{"name": device.name, "address": device.address} for device in devices] + else: + return [ + {"name": device.name, "address": device.address} + for device in devices + if device.name and "TP350S" in device.name + ] except Exception: return [] async def main(): - devices = await discover() + check_debug = os.getenv("DEBUG", "FALSE").upper() == "TRUE" + if check_debug: + print("DEBUG MODE ENABLED") + devices = await discover(debug=check_debug) + print(devices) if __name__ == "__main__": diff --git a/tests/test_discover.py b/tests/test_discover.py index 75bf805..22e1d73 100644 --- a/tests/test_discover.py +++ b/tests/test_discover.py @@ -2,19 +2,36 @@ from unittest import IsolatedAsyncioTestCase from unittest.mock import AsyncMock, patch from discover import discover from bleak.backends.device import BLEDevice +import os class TestDiscover(IsolatedAsyncioTestCase): @patch('src.discover.BleakScanner.discover', new_callable=AsyncMock) async def test_device_discovery_successful(self, mock_discover): - device_1 = BLEDevice(address="AA:BB:CC:DD:EE:FF", name="Device 1", details={}, rssi=-40) + device_1 = BLEDevice(address="AA:BB:CC:DD:EE:FF", name="TP350S", details={}, rssi=-40) device_2 = BLEDevice(address="GG:HH:II:JJ:KK:LL", name="Device 2", details={}, rssi=-64) - mock_discover.return_value = [device_1, device_2] + mock_discover.return_value = [device_1] result = await discover() expected = [ - {"name": "Device 1", "address": "AA:BB:CC:DD:EE:FF"}, + {"name": "TP350S", "address": "AA:BB:CC:DD:EE:FF"}, + ] + + self.assertEqual(result,expected) + + @patch('src.discover.BleakScanner.discover', new_callable=AsyncMock) + async def test_device_discovery_successful_with_debug(self, mock_discover): + device_1 = BLEDevice(address="AA:BB:CC:DD:EE:FF", name="TP350S", details={}, rssi=-40) + device_2 = BLEDevice(address="GG:HH:II:JJ:KK:LL", name="Device 2", details={}, rssi=-64) + + mock_discover.return_value = [device_1, device_2] + + with patch.dict(os.environ, {"DEBUG": "TRUE"}): + result = await discover() + + expected = [ + {"name": "TP350S", "address": "AA:BB:CC:DD:EE:FF"}, {"name": "Device 2", "address": "GG:HH:II:JJ:KK:LL"} ] |
