fix: migrate remaining session.query() calls to SQLAlchemy 2.0 select() 🔧

This commit is contained in:
2026-02-19 23:38:31 +13:00
parent 8c1c2b4abc
commit d81ecd6bdd
2 changed files with 19 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
import cherrypy
import json
from loguru import logger
from sqlalchemy import select
from directdnsonly.app.db import connect
from directdnsonly.app.db.models import Domain
@@ -30,12 +31,11 @@ class InternalAPI:
session = connect()
try:
if domain:
record = (
session.query(Domain)
record = session.execute(
select(Domain)
.filter_by(domain=domain)
.filter(Domain.zone_data.isnot(None))
.first()
)
.where(Domain.zone_data.isnot(None))
).scalar_one_or_none()
if not record:
cherrypy.response.status = 404
return json.dumps({"error": "not found"}).encode()
@@ -53,11 +53,9 @@ class InternalAPI:
}
).encode()
else:
records = (
session.query(Domain)
.filter(Domain.zone_data.isnot(None))
.all()
)
records = session.execute(
select(Domain).where(Domain.zone_data.isnot(None))
).scalars().all()
return json.dumps(
[
{

View File

@@ -65,6 +65,7 @@ def test_start_skips_when_disabled(caplog):
def test_start_warns_when_no_peers(caplog):
import logging
worker = PeerSyncWorker({"enabled": True, "peers": []})
with patch.object(worker, "_run"):
worker.start()
@@ -131,7 +132,9 @@ def test_sync_creates_new_local_record(patch_connect, monkeypatch):
def test_sync_updates_older_local_record(patch_connect, monkeypatch):
"""When local zone_data is older than peer's, it is overwritten."""
session = patch_connect
session.add(Domain(domain="example.com", zone_data="old data", zone_updated_at=OLDER))
session.add(
Domain(domain="example.com", zone_data="old data", zone_updated_at=OLDER)
)
session.commit()
worker = PeerSyncWorker(BASE_CONFIG)
@@ -149,7 +152,10 @@ def test_sync_updates_older_local_record(patch_connect, monkeypatch):
worker._sync_from_peer(_make_peer())
record = session.query(Domain).filter_by(domain="example.com").first()
from sqlalchemy import select
record = session.execute(
select(Domain).filter_by(domain="example.com")
).scalar_one_or_none()
assert record.zone_data == ZONE_DATA
assert record.zone_updated_at == NOW
@@ -157,7 +163,9 @@ def test_sync_updates_older_local_record(patch_connect, monkeypatch):
def test_sync_skips_when_local_is_newer(patch_connect, monkeypatch):
"""When local zone_data is newer than peer's, it is not overwritten."""
session = patch_connect
session.add(Domain(domain="example.com", zone_data="newer local", zone_updated_at=NOW))
session.add(
Domain(domain="example.com", zone_data="newer local", zone_updated_at=NOW)
)
session.commit()
worker = PeerSyncWorker(BASE_CONFIG)