mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-04-15 22:51:37 -07:00
Refactor test_sync_hub_node_backfill: streamline imports and utilize shared DB helpers
This commit is contained in:
@@ -74,6 +74,18 @@ Use sanitizers from `server/helper.py` before storing user input. MAC addresses
|
|||||||
- Everything is already writable
|
- Everything is already writable
|
||||||
- If permissions needed, fix `.devcontainer/scripts/setup.sh`
|
- If permissions needed, fix `.devcontainer/scripts/setup.sh`
|
||||||
|
|
||||||
|
## Test Helpers — No Duplicate Mocks
|
||||||
|
|
||||||
|
Reuse shared mocks and factories from `test/db_test_helpers.py`. Never redefine `DummyDB`, `make_db`, or inline DDL in individual test files.
|
||||||
|
|
||||||
|
```python
|
||||||
|
import sys, os
|
||||||
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
||||||
|
from db_test_helpers import make_db, DummyDB, insert_device, minutes_ago
|
||||||
|
```
|
||||||
|
|
||||||
|
If a helper you need doesn't exist yet, add it to `db_test_helpers.py` — not locally in the test file.
|
||||||
|
|
||||||
## Path Hygiene
|
## Path Hygiene
|
||||||
|
|
||||||
- Use environment variables for runtime paths
|
- Use environment variables for runtime paths
|
||||||
|
|||||||
@@ -1,37 +1,19 @@
|
|||||||
"""Tests for update_sync_hub_node backfill."""
|
"""Tests for update_sync_hub_node backfill."""
|
||||||
|
|
||||||
import sqlite3
|
import sys
|
||||||
|
import os
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
||||||
|
from db_test_helpers import make_db, DummyDB # noqa: E402
|
||||||
|
|
||||||
from server.scan import device_handling
|
from server.scan import device_handling
|
||||||
|
|
||||||
|
|
||||||
class DummyDB:
|
|
||||||
"""Minimal DB wrapper compatible with device_handling helpers."""
|
|
||||||
|
|
||||||
def __init__(self, conn):
|
|
||||||
self.sql = conn.cursor()
|
|
||||||
self._conn = conn
|
|
||||||
|
|
||||||
def commitDB(self):
|
|
||||||
self._conn.commit()
|
|
||||||
|
|
||||||
|
|
||||||
def _make_db(devices):
|
def _make_db(devices):
|
||||||
"""Create an in-memory DB with a Devices table and seed rows."""
|
"""Create an in-memory DB with full schema and seed rows."""
|
||||||
conn = sqlite3.connect(":memory:")
|
conn = make_db()
|
||||||
conn.row_factory = sqlite3.Row
|
|
||||||
cur = conn.cursor()
|
cur = conn.cursor()
|
||||||
|
|
||||||
cur.execute(
|
|
||||||
"""
|
|
||||||
CREATE TABLE Devices (
|
|
||||||
devMac TEXT PRIMARY KEY,
|
|
||||||
devSyncHubNode TEXT
|
|
||||||
)
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
|
|
||||||
cur.executemany(
|
cur.executemany(
|
||||||
"INSERT INTO Devices (devMac, devSyncHubNode) VALUES (?, ?)",
|
"INSERT INTO Devices (devMac, devSyncHubNode) VALUES (?, ?)",
|
||||||
devices,
|
devices,
|
||||||
|
|||||||
Reference in New Issue
Block a user