ble-reticulum/tests
torlando-tech fd2aa0a6d6 fix(ble): prevent duplicate identity rejection from triggering blacklist
When a peer connects with an identity already connected at a different
MAC address (Android MAC rotation), the connection is correctly rejected.
However, the error message format "Connection failed to {address}" was
matching the blacklist regex, causing the new MAC to be blacklisted.

After 3 duplicate rejections, the new MAC would be blacklisted for 60s+,
creating connectivity gaps when the old MAC finally disconnected.

Fix:
- Detect "Duplicate identity" in exception message
- Use severity "info" instead of "error" (doesn't trigger blacklist)
- Use safe message format "Duplicate identity rejected for {address}"
  which doesn't match the blacklist regex pattern

Also adds comprehensive tests for MAC rotation blacklist behavior.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 16:19:06 -05:00
..
conftest.py fix: update paths in installer, tests, and workflows for package rename 2025-12-29 23:58:18 -05:00
mock_ble_driver.py test: fix test suite for BLE interface changes 2026-01-01 14:03:59 -05:00
test_ble_peer_interface.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_bleak_threading_hang.py Initial commit: BLE Reticulum interface 2025-10-26 19:14:14 -04:00
test_bleak_with_exec_loading.py Initial commit: BLE Reticulum interface 2025-10-26 19:14:14 -04:00
test_bluez_state_cleanup.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_breddr_fallback_prevention.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_config_directory.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_dbus_disconnect_monitoring.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_error_recovery.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_fragmentation.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_gatt_server.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_gatt_server_readiness.py fix(ble): Add D-Bus verification to prevent GATT server initialization race 2025-11-10 19:51:23 -05:00
test_hci_error_fixes.py fix: update paths in installer, tests, and workflows for package rename 2025-12-29 23:58:18 -05:00
test_identity_cache.py test: fix test suite for BLE interface changes 2026-01-01 14:03:59 -05:00
test_identity_hash.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_identity_mapping_cleanup.py fix: Clean up identity mappings on disconnect to prevent stale connections 2025-11-13 15:37:54 -05:00
test_installer.sh refactor: make libffi-dev conditional for armhf (32-bit ARM) only 2025-10-29 11:02:51 -04:00
test_integration.py fix: update paths in installer, tests, and workflows for package rename 2025-12-29 23:58:18 -05:00
test_interface_cleanup.py test: add comprehensive tests for interface cleanup methods 2026-01-01 19:32:17 -05:00
test_mac_rotation_blacklist_bug.py fix(ble): prevent duplicate identity rejection from triggering blacklist 2026-01-17 16:19:06 -05:00
test_multi_device_simulation.py Initial commit: BLE Reticulum interface 2025-10-26 19:14:14 -04:00
test_peer_address_mac_rotation.py test: add comprehensive tests for peer_address MAC rotation fix 2026-01-13 16:51:02 -05:00
test_peripheral_disconnect_cleanup.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_prioritization.py fix: update paths in installer, tests, and workflows for package rename 2025-12-29 23:58:18 -05:00
test_scanner_connection_coordination.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_stale_connection_polling.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_v2_2_identity_handshake.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00
test_v2_2_mac_sorting.py test: fix test suite for BLE interface changes 2026-01-01 14:03:59 -05:00
test_v2_2_race_conditions.py refactor: rename package from RNS.Interfaces to ble_reticulum 2025-12-29 23:30:07 -05:00