import asyncio from app.infra.db.postgresql.scada import ScadaInfoRepository class _FakeCursor: def __init__(self): self.query = None async def __aenter__(self): return self async def __aexit__(self, exc_type, exc, tb): return False async def execute(self, query): self.query = query async def fetchall(self): return [ { "device_id": " 25470001 ", "device_type": " PRESSURE ", "node_id": " J1 ", "link_id": None, "api_query_id": "query-1", "transmission_mode": "realtime", "transmission_frequency": None, "reliability": "95", "x": "117.1", "y": "32.9", } ] class _FakeConnection: def __init__(self): self.cursor_instance = _FakeCursor() def cursor(self): return self.cursor_instance def test_get_scadas_normalizes_id_and_type(): conn = _FakeConnection() result = asyncio.run(ScadaInfoRepository.get_scadas(conn)) assert result == [ { "device_id": "25470001", "device_type": "pressure", "node_id": "J1", "link_id": None, "api_query_id": "query-1", "transmission_mode": "realtime", "transmission_frequency": None, "reliability": 95, "x": 117.1, "y": 32.9, } ] assert "node_id" in conn.cursor_instance.query assert "link_id" in conn.cursor_instance.query assert "FROM gis.scada_devices" in conn.cursor_instance.query