mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-03-30 23:03:03 -07:00
@@ -5,7 +5,6 @@ import pytest
|
|||||||
|
|
||||||
from scan.session_events import process_scan
|
from scan.session_events import process_scan
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def scan_db():
|
def scan_db():
|
||||||
conn = sqlite3.connect(":memory:")
|
conn = sqlite3.connect(":memory:")
|
||||||
@@ -13,8 +12,7 @@ def scan_db():
|
|||||||
cur = conn.cursor()
|
cur = conn.cursor()
|
||||||
|
|
||||||
# Devices
|
# Devices
|
||||||
cur.execute(
|
cur.execute("""
|
||||||
"""
|
|
||||||
CREATE TABLE Devices (
|
CREATE TABLE Devices (
|
||||||
devMac TEXT PRIMARY KEY,
|
devMac TEXT PRIMARY KEY,
|
||||||
devLastIP TEXT,
|
devLastIP TEXT,
|
||||||
@@ -23,22 +21,18 @@ def scan_db():
|
|||||||
devAlertEvents INTEGER,
|
devAlertEvents INTEGER,
|
||||||
devIsArchived INTEGER DEFAULT 0
|
devIsArchived INTEGER DEFAULT 0
|
||||||
)
|
)
|
||||||
"""
|
""")
|
||||||
)
|
|
||||||
|
|
||||||
# Current scan
|
# Current scan
|
||||||
cur.execute(
|
cur.execute("""
|
||||||
"""
|
|
||||||
CREATE TABLE CurrentScan (
|
CREATE TABLE CurrentScan (
|
||||||
scanMac TEXT,
|
scanMac TEXT,
|
||||||
scanLastIP TEXT
|
scanLastIP TEXT
|
||||||
)
|
)
|
||||||
"""
|
""")
|
||||||
)
|
|
||||||
|
|
||||||
# Events
|
# Events
|
||||||
cur.execute(
|
cur.execute("""
|
||||||
"""
|
|
||||||
CREATE TABLE Events (
|
CREATE TABLE Events (
|
||||||
eve_MAC TEXT,
|
eve_MAC TEXT,
|
||||||
eve_IP TEXT,
|
eve_IP TEXT,
|
||||||
@@ -47,8 +41,30 @@ def scan_db():
|
|||||||
eve_AdditionalInfo TEXT,
|
eve_AdditionalInfo TEXT,
|
||||||
eve_PendingAlertEmail INTEGER
|
eve_PendingAlertEmail INTEGER
|
||||||
)
|
)
|
||||||
"""
|
""")
|
||||||
|
|
||||||
|
# LatestEventsPerMAC view
|
||||||
|
cur.execute("""DROP VIEW IF EXISTS LatestEventsPerMAC;""")
|
||||||
|
cur.execute("""
|
||||||
|
CREATE VIEW LatestEventsPerMAC AS
|
||||||
|
WITH RankedEvents AS (
|
||||||
|
SELECT
|
||||||
|
e.*,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY e.eve_MAC ORDER BY e.eve_DateTime DESC) AS row_num
|
||||||
|
FROM Events AS e
|
||||||
)
|
)
|
||||||
|
SELECT
|
||||||
|
e.eve_MAC,
|
||||||
|
e.eve_EventType,
|
||||||
|
e.eve_DateTime,
|
||||||
|
e.eve_PendingAlertEmail,
|
||||||
|
d.devPresentLastScan,
|
||||||
|
c.scanLastIP
|
||||||
|
FROM RankedEvents AS e
|
||||||
|
LEFT JOIN Devices AS d ON e.eve_MAC = d.devMac
|
||||||
|
LEFT JOIN CurrentScan AS c ON e.eve_MAC = c.scanMac
|
||||||
|
WHERE e.row_num = 1;
|
||||||
|
""")
|
||||||
|
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user