mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-04-02 08:12:21 -07:00
Refactor event and session column names to camelCase
- Updated test cases to reflect new column names (eve_MAC -> eveMac, eve_DateTime -> eveDateTime, etc.) across various test files. - Modified SQL table definitions in the database cleanup and migration tests to use camelCase naming conventions. - Implemented migration tests to ensure legacy column names are correctly renamed to camelCase equivalents. - Ensured that existing data is preserved during the migration process and that views referencing old column names are dropped before renaming. - Verified that the migration function is idempotent, allowing for safe re-execution without data loss.
This commit is contained in:
@@ -39,15 +39,15 @@ def test_db(test_db_path):
|
||||
# Minimal schema for integration testing
|
||||
cur.execute('''
|
||||
CREATE TABLE IF NOT EXISTS Events_Devices (
|
||||
eve_MAC TEXT,
|
||||
eve_DateTime TEXT,
|
||||
eveMac TEXT,
|
||||
eveDateTime TEXT,
|
||||
devLastIP TEXT,
|
||||
eve_IP TEXT,
|
||||
eve_EventType TEXT,
|
||||
eveIp TEXT,
|
||||
eveEventType TEXT,
|
||||
devName TEXT,
|
||||
devVendor TEXT,
|
||||
devComments TEXT,
|
||||
eve_PendingAlertEmail INTEGER
|
||||
evePendingAlertEmail INTEGER
|
||||
)
|
||||
''')
|
||||
|
||||
@@ -63,24 +63,24 @@ def test_db(test_db_path):
|
||||
|
||||
cur.execute('''
|
||||
CREATE TABLE IF NOT EXISTS Events (
|
||||
eve_MAC TEXT,
|
||||
eve_DateTime TEXT,
|
||||
eve_EventType TEXT,
|
||||
eve_PendingAlertEmail INTEGER
|
||||
eveMac TEXT,
|
||||
eveDateTime TEXT,
|
||||
eveEventType TEXT,
|
||||
evePendingAlertEmail INTEGER
|
||||
)
|
||||
''')
|
||||
|
||||
cur.execute('''
|
||||
CREATE TABLE IF NOT EXISTS Plugins_Events (
|
||||
Plugin TEXT,
|
||||
Object_PrimaryId TEXT,
|
||||
Object_SecondaryId TEXT,
|
||||
DateTimeChanged TEXT,
|
||||
Watched_Value1 TEXT,
|
||||
Watched_Value2 TEXT,
|
||||
Watched_Value3 TEXT,
|
||||
Watched_Value4 TEXT,
|
||||
Status TEXT
|
||||
plugin TEXT,
|
||||
objectPrimaryId TEXT,
|
||||
objectSecondaryId TEXT,
|
||||
dateTimeChanged TEXT,
|
||||
watchedValue1 TEXT,
|
||||
watchedValue2 TEXT,
|
||||
watchedValue3 TEXT,
|
||||
watchedValue4 TEXT,
|
||||
"status" TEXT
|
||||
)
|
||||
''')
|
||||
|
||||
@@ -91,7 +91,7 @@ def test_db(test_db_path):
|
||||
('77:88:99:aa:bb:cc', '2024-01-01 12:02:00', '192.168.1.102', '192.168.1.102', 'Disconnected', 'Test Device 3', 'Cisco', 'Third Comment', 1),
|
||||
]
|
||||
cur.executemany('''
|
||||
INSERT INTO Events_Devices (eve_MAC, eve_DateTime, devLastIP, eve_IP, eve_EventType, devName, devVendor, devComments, eve_PendingAlertEmail)
|
||||
INSERT INTO Events_Devices (eveMac, eveDateTime, devLastIP, eveIp, eveEventType, devName, devVendor, devComments, evePendingAlertEmail)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
''', test_data)
|
||||
|
||||
@@ -117,7 +117,7 @@ def test_fresh_install_compatibility(builder):
|
||||
def test_existing_db_compatibility():
|
||||
mock_db = Mock()
|
||||
mock_result = Mock()
|
||||
mock_result.columnNames = ['devName', 'eve_MAC', 'devVendor', 'eve_IP', 'eve_DateTime', 'eve_EventType', 'devComments']
|
||||
mock_result.columnNames = ['devName', 'eveMac', 'devVendor', 'eveIp', 'eveDateTime', 'eveEventType', 'devComments']
|
||||
mock_result.json = {'data': []}
|
||||
mock_db.get_table_as_json.return_value = mock_result
|
||||
|
||||
@@ -145,9 +145,9 @@ def test_notification_system_integration(builder):
|
||||
assert "devName = :" in condition
|
||||
assert 'EmailTestDevice' in params.values()
|
||||
|
||||
apprise_condition = "AND eve_EventType = 'Connected'"
|
||||
apprise_condition = "AND eveEventType = 'Connected'"
|
||||
condition, params = builder.get_safe_condition_legacy(apprise_condition)
|
||||
assert "eve_EventType = :" in condition
|
||||
assert "eveEventType = :" in condition
|
||||
assert 'Connected' in params.values()
|
||||
|
||||
webhook_condition = "AND devComments LIKE '%webhook%'"
|
||||
@@ -155,9 +155,9 @@ def test_notification_system_integration(builder):
|
||||
assert "devComments LIKE :" in condition
|
||||
assert '%webhook%' in params.values()
|
||||
|
||||
mqtt_condition = "AND eve_MAC = 'aa:bb:cc:dd:ee:ff'"
|
||||
mqtt_condition = "AND eveMac = 'aa:bb:cc:dd:ee:ff'"
|
||||
condition, params = builder.get_safe_condition_legacy(mqtt_condition)
|
||||
assert "eve_MAC = :" in condition
|
||||
assert "eveMac = :" in condition
|
||||
assert 'aa:bb:cc:dd:ee:ff' in params.values()
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ def test_settings_persistence(builder):
|
||||
test_settings = [
|
||||
"AND devName = 'Persistent Device'",
|
||||
"AND devComments = {s-quote}Legacy Quote{s-quote}",
|
||||
"AND eve_EventType IN ('Connected', 'Disconnected')",
|
||||
"AND eveEventType IN ('Connected', 'Disconnected')",
|
||||
"AND devLastIP = '192.168.1.1'",
|
||||
""
|
||||
]
|
||||
@@ -190,9 +190,9 @@ def test_device_operations(builder):
|
||||
|
||||
def test_plugin_functionality(builder):
|
||||
plugin_conditions = [
|
||||
"AND Plugin = 'TestPlugin'",
|
||||
"AND Object_PrimaryId = 'primary123'",
|
||||
"AND Status = 'Active'"
|
||||
"AND plugin = 'TestPlugin'",
|
||||
"AND objectPrimaryId = 'primary123'",
|
||||
"AND status = 'Active'"
|
||||
]
|
||||
for cond in plugin_conditions:
|
||||
safe_condition, params = builder.get_safe_condition_legacy(cond)
|
||||
|
||||
Reference in New Issue
Block a user