From 6bc2de6e24bc3948836a3b29ef46ede072de3611 Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Fri, 6 Feb 2026 18:54:15 +1100 Subject: [PATCH] TEST: scan processing - de;eted Signed-off-by: jokob-sk --- test/scan/test_presence_detection.py | 120 --------------------------- 1 file changed, 120 deletions(-) delete mode 100644 test/scan/test_presence_detection.py diff --git a/test/scan/test_presence_detection.py b/test/scan/test_presence_detection.py deleted file mode 100644 index aa5d1e47..00000000 --- a/test/scan/test_presence_detection.py +++ /dev/null @@ -1,120 +0,0 @@ -from scan.session_events import process_scan -from unittest.mock import Mock, patch -import pytest - - -@pytest.fixture -def minimal_patches(): - with patch.multiple( - "scan.session_events", - exclude_ignored_devices=Mock(), - save_scanned_devices=Mock(), - print_scan_stats=Mock(), - create_new_devices=Mock(), - update_devices_data_from_scan=Mock(), - update_devLastConnection_from_CurrentScan=Mock(), - update_vendors_from_mac=Mock(), - update_ipv4_ipv6=Mock(), - update_icons_and_types=Mock(), - pair_sessions_events=Mock(), - create_sessions_snapshot=Mock(), - insertOnlineHistory=Mock(), - skip_repeated_notifications=Mock(), - update_unread_notifications_count=Mock(), - ): - yield - - -# --------------------------------------------------- -# TEST 1: Online → Offline transition -# --------------------------------------------------- -def test_device_goes_offline_when_missing_next_scan(scan_db, minimal_patches): - conn = scan_db - cur = conn.cursor() - - # Device initially known - cur.execute(""" - INSERT INTO Devices (devMac, devLastIP, devPresentLastScan, devAlertDown, devAlertEvents, devIsArchived) - VALUES ('AA','1.1.1.1',1,1,1,0) - """) - conn.commit() - - # FIRST SCAN — device present - cur.execute("INSERT INTO CurrentScan (scanMac, scanLastIP) VALUES ('AA','1.1.1.1')") - conn.commit() - - process_scan(conn) - - # Device should be online - row = cur.execute( - "SELECT devPresentLastScan FROM Devices WHERE devMac='AA'" - ).fetchone() - assert row["devPresentLastScan"] == 1 - - # SECOND SCAN — device missing - process_scan(conn) - - row = cur.execute( - "SELECT devPresentLastScan FROM Devices WHERE devMac='AA'" - ).fetchone() - assert row["devPresentLastScan"] == 0 - - -# --------------------------------------------------- -# TEST 2: Device Down event created -# --------------------------------------------------- -def test_device_down_event_created_when_missing(scan_db, minimal_patches): - conn = scan_db - cur = conn.cursor() - - cur.execute(""" - INSERT INTO Devices (devMac, devLastIP, devPresentLastScan, devAlertDown, devAlertEvents, devIsArchived) - VALUES ('BB','2.2.2.2',1,1,1,0) - """) - conn.commit() - - # No CurrentScan entry → offline - process_scan(conn) - - event = cur.execute(""" - SELECT eve_EventType - FROM Events - WHERE eve_MAC='BB' - """).fetchone() - - assert event is not None - assert event["eve_EventType"] == "Device Down" - - -# --------------------------------------------------- -# TEST 3: Guards against the "forgot to clear CurrentScan" bug -# --------------------------------------------------- -def test_offline_detection_requires_currentscan_cleanup(scan_db, minimal_patches): - conn = scan_db - cur = conn.cursor() - - # Device exists - cur.execute(""" - INSERT INTO Devices (devMac, devLastIP, devPresentLastScan, devAlertDown, devAlertEvents, devIsArchived) - VALUES ('CC','3.3.3.3',1,1,1,0) - """) - conn.commit() - - # First scan — device present - cur.execute("INSERT INTO CurrentScan (scanMac, scanLastIP) VALUES ('CC','3.3.3.3')") - conn.commit() - - process_scan(conn) - - # Simulate bug: device not seen again BUT CurrentScan not cleared - cur.execute("INSERT INTO CurrentScan (scanMac, scanLastIP) VALUES ('CC','3.3.3.3')") - conn.commit() - - process_scan(conn) - - row = cur.execute(""" - SELECT devPresentLastScan - FROM Devices WHERE devMac='CC' - """).fetchone() - - assert row["devPresentLastScan"] == 0