Files
d4c-service-geo-assistant/tests/tools/test_buffer.py
T
Wei Ji e3530cefd2 Use ruff rules COM, F, I, RUF, UP (#17)
* Use pyupgrade (UP) rule

* Use pyflakes (F) rule

* Use isort (I) rule

* Use ruff-specific (RUF) rules

* Use flake8-commas (COM) rule

* Fix UP043 Unnecessary default type arguments
2025-12-05 10:44:37 +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_png_path="path/to/naip.png",
)
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"