33 lines
1.4 KiB
Python
Executable File
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()) |