Files
d4c-service-geo-assistant/tests/tools/test_buffer.py
T
Daniel Wiesmann 9b202c504e Render naip and summarize (#20)
* Intermediate

* Fix naip geom handling

* Fix imagery decoding for summary tool

* Re enable xfail

* Re enable xfail

* Remove png references
2025-12-05 15:39:16 +00:00

47 lines
1.4 KiB
Python

from geojson_pydantic import Feature, Point
from langchain_core.tools.base import ToolCall
from pytest import fixture
from geo_assistant.agent.state import GeoAssistantState
from geo_assistant.tools.buffer import get_search_area
@fixture
def geo_assistant_fixture():
place_geojson = Feature(
type="Feature",
geometry=Point(type="Point", coordinates=[-9.1393, 38.7223]),
properties={"name": "Neighbourhood Cafe Lisbon"},
)
return GeoAssistantState(
place=place_geojson,
search_area=None,
messages=[],
naip_img_bytes=None,
)
async def test_get_search_area(geo_assistant_fixture):
# Call the underlying function directly to test the logic
# This bypasses the injection framework which is better suited for integration tests
command = await get_search_area.ainvoke(
ToolCall(
name="get_search_area",
type="tool_call",
id="test_id_search_area",
args={
"buffer_size_km": 10.0,
"state": geo_assistant_fixture,
"tool_call_id": "test_id_search_area",
},
),
)
# Verify the state was used correctly
assert "search_area" in command.update
assert "messages" in command.update
# Verify the buffer was created around the correct place
search_area = command.update["search_area"]
assert search_area.geometry.type == "Polygon"