Skip to content

Commit 5f0bef6

Browse files
committed
chore(validate): add test for aoi test
1 parent e813196 commit 5f0bef6

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

apps/project/tests/e2e_create_validate_project_test.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,32 @@ class Mutation:
294294
}
295295
"""
296296

297+
class Query:
298+
TEST_AOI_OBJECTS = """
299+
query TestAoiObjects($assetId: ID, $projectId: ID, $ohsomeFilter: String) {
300+
testAoiObjects(assetId: $assetId, projectId: $projectId, ohsomeFilter: $ohsomeFilter) {
301+
ok
302+
error
303+
objectCount
304+
assetId
305+
projectId
306+
ohsomeFilter
307+
}
308+
}
309+
"""
310+
311+
TEST_TASKING_MANAGER_PROJECT = """
312+
query TestTaskingManagerProject($hotTmId: String, $ohsomeFilter: String) {
313+
testTaskingManagerProject(hotTmId: $hotTmId, ohsomeFilter: $ohsomeFilter) {
314+
ok
315+
error
316+
objectCount
317+
hotTmId
318+
ohsomeFilter
319+
}
320+
}
321+
"""
322+
297323
@pytest.mark.vcr("assets/tests/projects/validate/cassette")
298324
def test_validate_project_e2e(self):
299325
# TODO(susilnem): Add more test with filters
@@ -398,6 +424,15 @@ def _test_project(self, filename: str):
398424
assert aoi_response["ok"]
399425
aoi_id = aoi_response["result"]["id"]
400426

427+
# Test AOI objects
428+
ohsomeFilter = "building=* and geometry:polygon"
429+
test_aoi_objects_content = self.query_check(
430+
self.Query.TEST_AOI_OBJECTS,
431+
variables={"assetId": aoi_id, "projectId": project_id, "ohsomeFilter": ohsomeFilter},
432+
)
433+
test_aoi_objects_response = test_aoi_objects_content["data"]["testAoiObjects"]
434+
assert test_aoi_objects_response["ok"]
435+
401436
# Update project
402437
update_project_data = test_data["update_project"]
403438
update_project_data["image"] = image_id

project_types/validate/tests/api_calls_test.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from main.tests import TestCase
88
from project_types.validate.api_calls import (
99
ValidateApiCallError,
10+
get_object_count_from_ohsome,
1011
ohsome,
1112
query_osm,
1213
query_osmcha,
@@ -141,6 +142,37 @@ def test_query_osm(self, mock_retry_get): # type: ignore[reportMissingParameter
141142
with pytest.raises(ValidateApiCallError):
142143
query_osm([12345], {})
143144

145+
@patch("requests.post")
146+
def test_get_object_count_from_ohsome(self, mock_post): # type: ignore[reportMissingParameterType]
147+
sample_filter = "building=* and geometry:polygon"
148+
sample_area = "POLYGON((8.67 49.39,8.68 49.39,8.68 49.40,8.67 49.40,8.67 49.39))"
149+
150+
sample_object_count = 500
151+
152+
mock_response_data = {
153+
"attribution": {
154+
"url": "https://ohsome.org/copyrights",
155+
"text": "© OpenStreetMap contributors",
156+
},
157+
"apiVersion": "1.10.4",
158+
"result": [
159+
{
160+
"timestamp": "2025-10-01T12:00:00Z",
161+
"value": sample_object_count,
162+
},
163+
],
164+
}
165+
166+
mock_response = MagicMock()
167+
mock_response.status_code = 200
168+
mock_response.json.return_value = mock_response_data
169+
mock_post.return_value = mock_response
170+
171+
object_count = get_object_count_from_ohsome(sample_area, sample_filter)
172+
173+
mock_post.assert_called_once()
174+
assert object_count == sample_object_count
175+
144176
@patch("requests.post")
145177
@patch("project_types.validate.api_calls.remove_noise_and_add_user_info")
146178
def test_ohsome(self, mock_remove_noise, mock_post): # type: ignore[reportMissingParameterType]

0 commit comments

Comments
 (0)