feat: authoritative plugin fields

Signed-off-by: jokob-sk <jokob.sk@gmail.com>
This commit is contained in:
jokob-sk
2026-01-24 22:20:30 +11:00
parent 2acc180fd5
commit 3775e21dc7
11 changed files with 75 additions and 70 deletions

View File

@@ -129,11 +129,11 @@ class TestFieldSourceMapping:
expected_fields = {
"devMac": "devMacSource",
"devName": "devNameSource",
"devFQDN": "devFqdnSource",
"devLastIP": "devLastIpSource",
"devFQDN": "devFQDNSource",
"devLastIP": "devLastIPSource",
"devVendor": "devVendorSource",
"devSSID": "devSsidSource",
"devParentMAC": "devParentMacSource",
"devSSID": "devSSIDSource",
"devParentMAC": "devParentMACSource",
"devParentPort": "devParentPortSource",
"devParentRelType": "devParentRelTypeSource",
"devVlan": "devVlanSource",

View File

@@ -414,7 +414,7 @@ class TestFieldLockIntegration:
device_data = device_handler.getDeviceData(test_mac)
assert device_data.get("devNameSource") == "NEWDEV"
assert device_data.get("devVendorSource") == "NEWDEV"
assert device_data.get("devSsidSource") == "NEWDEV"
assert device_data.get("devSSIDSource") == "NEWDEV"
# Simulate a UI "save" that resubmits the same values.
update_result = device_handler.setDeviceData(
@@ -430,7 +430,7 @@ class TestFieldLockIntegration:
device_data = device_handler.getDeviceData(test_mac)
assert device_data.get("devNameSource") == "NEWDEV"
assert device_data.get("devVendorSource") == "NEWDEV"
assert device_data.get("devSsidSource") == "NEWDEV"
assert device_data.get("devSSIDSource") == "NEWDEV"
def test_only_changed_fields_marked_user(self, test_mac):
"""When saving, only fields whose values changed should become USER."""
@@ -461,7 +461,7 @@ class TestFieldLockIntegration:
device_data = device_handler.getDeviceData(test_mac)
assert device_data.get("devNameSource") == "USER"
assert device_data.get("devVendorSource") == "NEWDEV"
assert device_data.get("devSsidSource") == "NEWDEV"
assert device_data.get("devSSIDSource") == "NEWDEV"
if __name__ == "__main__":

View File

@@ -39,19 +39,19 @@ def scan_db():
devNameSource TEXT DEFAULT 'NEWDEV',
devVendor TEXT,
devVendorSource TEXT DEFAULT 'NEWDEV',
devLastIpSource TEXT DEFAULT 'NEWDEV',
devLastIPSource TEXT DEFAULT 'NEWDEV',
devType TEXT,
devIcon TEXT,
devParentPort TEXT,
devParentPortSource TEXT DEFAULT 'NEWDEV',
devParentMAC TEXT,
devParentMacSource TEXT DEFAULT 'NEWDEV',
devParentMACSource TEXT DEFAULT 'NEWDEV',
devSite TEXT,
devSiteSource TEXT DEFAULT 'NEWDEV',
devSSID TEXT,
devSsidSource TEXT DEFAULT 'NEWDEV',
devSSIDSource TEXT DEFAULT 'NEWDEV',
devFQDN TEXT,
devFqdnSource TEXT DEFAULT 'NEWDEV',
devFQDNSource TEXT DEFAULT 'NEWDEV',
devParentRelType TEXT,
devParentRelTypeSource TEXT DEFAULT 'NEWDEV',
devVlan TEXT,
@@ -165,11 +165,11 @@ def scan_db_for_new_devices():
devSourcePlugin TEXT,
devMacSource TEXT,
devNameSource TEXT,
devFqdnSource TEXT,
devLastIpSource TEXT,
devFQDNSource TEXT,
devLastIPSource TEXT,
devVendorSource TEXT,
devSsidSource TEXT,
devParentMacSource TEXT,
devSSIDSource TEXT,
devParentMACSource TEXT,
devParentPortSource TEXT,
devParentRelTypeSource TEXT,
devVlanSource TEXT,
@@ -304,12 +304,12 @@ def test_create_new_devices_sets_sources(scan_db_for_new_devices):
devMacSource,
devNameSource,
devVendorSource,
devLastIpSource,
devSsidSource,
devParentMacSource,
devLastIPSource,
devSSIDSource,
devParentMACSource,
devParentPortSource,
devParentRelTypeSource,
devFqdnSource,
devFQDNSource,
devVlanSource
FROM Devices WHERE devMac = ?
""",
@@ -319,12 +319,12 @@ def test_create_new_devices_sets_sources(scan_db_for_new_devices):
assert row["devMacSource"] == "ARPSCAN"
assert row["devNameSource"] == "ARPSCAN"
assert row["devVendorSource"] == "ARPSCAN"
assert row["devLastIpSource"] == "ARPSCAN"
assert row["devSsidSource"] == "ARPSCAN"
assert row["devParentMacSource"] == "ARPSCAN"
assert row["devLastIPSource"] == "ARPSCAN"
assert row["devSSIDSource"] == "ARPSCAN"
assert row["devParentMACSource"] == "ARPSCAN"
assert row["devParentPortSource"] == "ARPSCAN"
assert row["devParentRelTypeSource"] == "NEWDEV"
assert row["devFqdnSource"] == "NEWDEV"
assert row["devFQDNSource"] == "NEWDEV"
assert row["devVlanSource"] == "NEWDEV"
@@ -337,7 +337,7 @@ def test_scan_updates_newdev_device_name(scan_db, mock_device_handlers):
"""
INSERT INTO Devices (
devMac, devLastConnection, devPresentLastScan, devLastIP,
devName, devNameSource, devVendor, devVendorSource, devLastIpSource,
devName, devNameSource, devVendor, devVendorSource, devLastIPSource,
devType, devIcon, devParentPort, devParentMAC, devSite, devSSID
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
@@ -412,7 +412,7 @@ def test_scan_does_not_update_user_field_name(scan_db, mock_device_handlers):
"""
INSERT INTO Devices (
devMac, devLastConnection, devPresentLastScan, devLastIP,
devName, devNameSource, devVendor, devVendorSource, devLastIpSource,
devName, devNameSource, devVendor, devVendorSource, devLastIPSource,
devType, devIcon, devParentPort, devParentMAC, devSite, devSSID
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
@@ -487,7 +487,7 @@ def test_scan_does_not_update_locked_field(scan_db, mock_device_handlers):
"""
INSERT INTO Devices (
devMac, devLastConnection, devPresentLastScan, devLastIP,
devName, devNameSource, devVendor, devVendorSource, devLastIpSource,
devName, devNameSource, devVendor, devVendorSource, devLastIPSource,
devType, devIcon, devParentPort, devParentMAC, devSite, devSSID
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
@@ -562,7 +562,7 @@ def test_scan_updates_empty_vendor_field(scan_db, mock_device_handlers):
"""
INSERT INTO Devices (
devMac, devLastConnection, devPresentLastScan, devLastIP,
devName, devNameSource, devVendor, devVendorSource, devLastIpSource,
devName, devNameSource, devVendor, devVendorSource, devLastIPSource,
devType, devIcon, devParentPort, devParentMAC, devSite, devSSID
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
@@ -637,7 +637,7 @@ def test_scan_updates_ip_addresses(scan_db, mock_device_handlers):
"""
INSERT INTO Devices (
devMac, devLastConnection, devPresentLastScan, devLastIP,
devName, devNameSource, devVendor, devVendorSource, devLastIpSource,
devName, devNameSource, devVendor, devVendorSource, devLastIPSource,
devType, devIcon, devParentPort, devParentMAC, devSite, devSSID,
devPrimaryIPv4, devPrimaryIPv6
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
@@ -717,7 +717,7 @@ def test_scan_updates_ipv6_without_changing_ipv4(scan_db, mock_device_handlers):
"""
INSERT INTO Devices (
devMac, devLastConnection, devPresentLastScan, devLastIP,
devName, devNameSource, devVendor, devVendorSource, devLastIpSource,
devName, devNameSource, devVendor, devVendorSource, devLastIPSource,
devType, devIcon, devParentPort, devParentMAC, devSite, devSSID,
devPrimaryIPv4, devPrimaryIPv6
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
@@ -796,7 +796,7 @@ def test_scan_updates_presence_status(scan_db, mock_device_handlers):
"""
INSERT INTO Devices (
devMac, devLastConnection, devPresentLastScan, devLastIP,
devName, devNameSource, devVendor, devVendorSource, devLastIpSource,
devName, devNameSource, devVendor, devVendorSource, devLastIPSource,
devType, devIcon, devParentPort, devParentMAC, devSite, devSSID
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
@@ -855,7 +855,7 @@ def test_scan_multiple_devices_mixed_sources(scan_db, mock_device_handlers):
"""
INSERT INTO Devices (
devMac, devLastConnection, devPresentLastScan, devLastIP,
devName, devNameSource, devVendor, devVendorSource, devLastIpSource,
devName, devNameSource, devVendor, devVendorSource, devLastIPSource,
devType, devIcon, devParentPort, devParentMAC, devSite, devSSID
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",

View File

@@ -31,7 +31,7 @@ def ip_test_db():
devPresentLastScan INTEGER,
devForceStatus TEXT,
devLastIP TEXT,
devLastIpSource TEXT DEFAULT 'NEWDEV',
devLastIPSource TEXT DEFAULT 'NEWDEV',
devPrimaryIPv4 TEXT,
devPrimaryIPv4Source TEXT DEFAULT 'NEWDEV',
devPrimaryIPv6 TEXT,