Refactor test_sync_hub_node_backfill: streamline imports and utilize shared DB helpers

This commit is contained in:
Jokob @NetAlertX
2026-04-15 12:48:01 +00:00
parent 89139fed60
commit f9bd8f35f5
2 changed files with 19 additions and 25 deletions

View File

@@ -74,6 +74,18 @@ Use sanitizers from `server/helper.py` before storing user input. MAC addresses
- Everything is already writable
- 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
- Use environment variables for runtime paths

View File

@@ -1,37 +1,19 @@
"""Tests for update_sync_hub_node backfill."""
import sqlite3
import sys
import os
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
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):
"""Create an in-memory DB with a Devices table and seed rows."""
conn = sqlite3.connect(":memory:")
conn.row_factory = sqlite3.Row
"""Create an in-memory DB with full schema and seed rows."""
conn = make_db()
cur = conn.cursor()
cur.execute(
"""
CREATE TABLE Devices (
devMac TEXT PRIMARY KEY,
devSyncHubNode TEXT
)
"""
)
cur.executemany(
"INSERT INTO Devices (devMac, devSyncHubNode) VALUES (?, ?)",
devices,