From f28c6619a5d4df9ce244d05e36bae827a17ff986 Mon Sep 17 00:00:00 2001 From: Samuel Guillemet <samuel.guillemet@telecom-sudparis.eu> Date: Wed, 19 Jul 2023 10:12:16 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20TEST:=20Tests=20for=20sensor=5Fd?= =?UTF-8?q?ata=20webhook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/app/api/v1/endpoints/test_webhook.py | 73 ++++--------------- .../zoom_room_sensor_data/__init__.py | 0 .../test_sensor_data_handler.py | 24 ++++++ 3 files changed, 40 insertions(+), 57 deletions(-) create mode 100644 tests/app/components/zoom_room_sensor_data/__init__.py create mode 100644 tests/app/components/zoom_room_sensor_data/test_sensor_data_handler.py diff --git a/tests/app/api/v1/endpoints/test_webhook.py b/tests/app/api/v1/endpoints/test_webhook.py index 1da3630..ca0e9cf 100644 --- a/tests/app/api/v1/endpoints/test_webhook.py +++ b/tests/app/api/v1/endpoints/test_webhook.py @@ -10,60 +10,7 @@ async def override_verify_webhook_signature(): pass -url_validation_body = { - "payload": {"plainToken": "q9ibPhGeRZ6ayx5WTrXjRw"}, - "event_ts": 1689061099652, - "event": "endpoint.url_validation", -} - -checked_in_body = { - "event": "zoomroom.checked_in", - "event_ts": 1626230691572, - "payload": { - "account_id": "AAAAAABBBB", - "object": { - "id": "abcD3ojfdbjfg", - "room_name": "My Zoom Room", - "calendar_name": "mycalendar@example.com", - "email": "jchill@example.com", - "event_id": "AbbbbbGYxLTc3OTVkMzFmZDc0MwBGAAAAAAD48FI58voYSqDgJePOSZ", - "change_key": "DwAAABYAAABQ/N0JvB/FRqv5UT2rFfkVAAE2XqVw", - "resource_email": "zroom1@example.com", - "calendar_id": "mycalendar@example.com", - "calendar_type": "2", - "api_type": "0", - }, - }, -} - -checked_out_body = { - "event": "zoomroom.checked_out", - "event_ts": 1626230691572, - "payload": { - "account_id": "AAAAAABBBB", - "object": { - "id": "abcD3ojfdbjfg", - "room_name": "My Zoom Room", - "calendar_name": "mycalendar@example.com", - "email": "jchill@example.com", - "event_id": "AbbbbbGYxLTc3OTVkMzFmZDc0MwBGAAAAAAD48FI58voYSqDgJePOSZ", - "change_key": "DwAAABYAAABQ/N0JvB/FRqv5UT2rFfkVAAE2XqVw", - "resource_email": "zroom1@example.com", - "calendar_id": "mycalendar@example.com", - "calendar_type": "2", - "api_type": "0", - }, - }, -} - -not_supported_event_body = { - "event": "not_supported_event", - "event_ts": 1626230691572, - "payload": {}, -} - - -def test_url_validation(): +def test_url_validation(url_validation_body): app.dependency_overrides[ verify_webhook_signature ] = override_verify_webhook_signature @@ -75,7 +22,7 @@ def test_url_validation(): assert response.status_code == 200 -def test_check_in(): +def test_check_in(checked_in_body): app.dependency_overrides[ verify_webhook_signature ] = override_verify_webhook_signature @@ -87,7 +34,7 @@ def test_check_in(): assert response.status_code == 200 -def test_check_out(): +def test_check_out(checked_out_body): app.dependency_overrides[ verify_webhook_signature ] = override_verify_webhook_signature @@ -99,7 +46,19 @@ def test_check_out(): assert response.status_code == 200 -def test_not_supported_event(): +def test_sensor_data(sensor_data_body): + app.dependency_overrides[ + verify_webhook_signature + ] = override_verify_webhook_signature + response = client.post( + "api/v1/webhook", + json=sensor_data_body, + ) + + assert response.status_code == 200 + + +def test_not_supported_event(not_supported_event_body): app.dependency_overrides[ verify_webhook_signature ] = override_verify_webhook_signature diff --git a/tests/app/components/zoom_room_sensor_data/__init__.py b/tests/app/components/zoom_room_sensor_data/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/app/components/zoom_room_sensor_data/test_sensor_data_handler.py b/tests/app/components/zoom_room_sensor_data/test_sensor_data_handler.py new file mode 100644 index 0000000..2d7ef03 --- /dev/null +++ b/tests/app/components/zoom_room_sensor_data/test_sensor_data_handler.py @@ -0,0 +1,24 @@ +import pytest +from pydantic import ValidationError + +from app.components.zoom_room_sensor_data import handler_function + + +def test_sensor_data_handler(sensor_data_body): + assert handler_function(sensor_data_body).model_dump() == { + "message": "Sensor data event received." + } + + +def test_sensor_data_handler_no_data(sensor_data_body): + sensor_data_body["payload"]["object"]["sensor_data"] = [] + assert handler_function(sensor_data_body).model_dump() == { + "message": "No sensor data in the payload." + } + + +def test_sensor_data_handler_invalid_payload(sensor_data_body): + sensor_data_body["payload"] = {} + + with pytest.raises(ValidationError): + handler_function(sensor_data_body) -- GitLab