Files
service-finder/backend/app/tests_internal/test_postgis.py

33 lines
1.4 KiB
Python
Executable File

# app/tests_internal/test_postgis.py
import asyncio
from sqlalchemy import text
from app.db.session import AsyncSessionLocal
async def test_geo_logic():
"""
THOUGHT PROCESS:
Ellenőrizni kell, hogy a PostgreSQL-ben a 'data.branches' tábla 'location' oszlopa
valóban GEOGRAPHY típusú-e, és az ST_Distance függvény működik-e.
Ha ez elbukik, a 'search.py' nem fog eredményt adni.
"""
print("🌍 PostGIS távolságszámítás tesztelése...")
async with AsyncSessionLocal() as session:
try:
# Egy teszt pont (Budapest központ) és egy körzet lekérdezése
query = text("""
SELECT id, name,
ST_Distance(location, ST_SetSRID(ST_MakePoint(19.0402, 47.4979), 4326)::geography) / 1000 as distance_km
FROM data.branches
LIMIT 1
""")
result = await db.execute(query)
row = result.fetchone()
if row:
print(f"✅ SIKER: Találtunk egy ágat ({row.name}) {row.distance_km:.2f} km távolságra.")
else:
print("⚠️ FIGYELEM: A lekérdezés lefutott, de nincsenek adatok a data.branches táblában.")
except Exception as e:
print(f"❌ HIBA: A PostGIS lekérdezés elbukott. Oka: {str(e)}")
if __name__ == "__main__":
asyncio.run(test_geo_logic())