diff --git a/directdnsonly/app/api/internal.py b/directdnsonly/app/api/internal.py index 600ded8..f7598bb 100644 --- a/directdnsonly/app/api/internal.py +++ b/directdnsonly/app/api/internal.py @@ -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( [ { diff --git a/tests/test_peer_sync.py b/tests/test_peer_sync.py index b6d56cb..0fc2475 100644 --- a/tests/test_peer_sync.py +++ b/tests/test_peer_sync.py @@ -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)