This is an automated email from the ASF dual-hosted git repository.
gopidesu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new a92319ac832 Fix Pagerduty tests for latest version 6.0.0 (#57216)
a92319ac832 is described below
commit a92319ac83258acd5e9ed5598bb7f06f22d78d0e
Author: GPK <[email protected]>
AuthorDate: Sat Oct 25 03:12:16 2025 +0100
Fix Pagerduty tests for latest version 6.0.0 (#57216)
* Fix Pagerduty tests for latest version 6.0.0
* Fix tests
---
.../tests/unit/pagerduty/hooks/test_pagerduty.py | 8 +++-
.../unit/pagerduty/hooks/test_pagerduty_events.py | 43 +++++++++++++++++++---
2 files changed, 44 insertions(+), 7 deletions(-)
diff --git a/providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty.py
b/providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty.py
index e7ca5451810..630a761a18c 100644
--- a/providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty.py
+++ b/providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty.py
@@ -17,6 +17,9 @@
# under the License.
from __future__ import annotations
+from unittest.mock import patch
+
+import pagerduty
import pytest
from airflow.models import Connection
@@ -57,7 +60,8 @@ class TestPagerdutyHook:
hook = PagerdutyHook(token="pagerduty_param_token",
pagerduty_conn_id=DEFAULT_CONN_ID)
assert hook.token == "pagerduty_param_token", "token initialised."
- def test_get_service(self, requests_mock):
+ @patch.object(pagerduty.RestApiV2Client, "rget")
+ def test_get_service(self, rget):
hook = PagerdutyHook(pagerduty_conn_id=DEFAULT_CONN_ID)
mock_response_body = {
"id": "PZYX321",
@@ -67,7 +71,7 @@ class TestPagerdutyHook:
"summary": "Apache Airflow",
"self": "https://api.pagerduty.com/services/PZYX321",
}
- requests_mock.get("https://api.pagerduty.com/services/PZYX321",
json={"service": mock_response_body})
+ rget.return_value = mock_response_body
client = hook.client()
resp = client.rget("/services/PZYX321")
assert resp == mock_response_body
diff --git
a/providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty_events.py
b/providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty_events.py
index dea0cc5f620..f2665bf5151 100644
--- a/providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty_events.py
+++ b/providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty_events.py
@@ -18,9 +18,13 @@
from __future__ import annotations
from unittest import mock
+from unittest.mock import patch
+import httpx
+import pagerduty
import pytest
from aioresponses import aioresponses
+from pagerduty import EventsApiV2Client
from airflow.models import Connection
from airflow.providers.pagerduty.hooks.pagerduty_events import (
@@ -82,26 +86,55 @@ class TestPagerdutyEventsHook:
hook = PagerdutyEventsHook(integration_key="override_key",
pagerduty_events_conn_id=DEFAULT_CONN_ID)
assert hook.integration_key == "override_key", "token initialised."
- def test_create_change_event(self, requests_mock, events_connections):
+ @patch.object(pagerduty.EventsApiV2Client, "request")
+ def test_create_change_event(self, mock_request, events_connections):
+ """Test that create_change_event sends a valid change event and
returns None"""
+
hook = PagerdutyEventsHook(pagerduty_events_conn_id=DEFAULT_CONN_ID)
+
mock_response_body = {
"message": "Change event processed",
"status": "success",
}
- requests_mock.post("https://events.pagerduty.com/v2/change/enqueue",
json=mock_response_body)
+ mock_response = httpx.Response(
+ status_code=202,
+ json=mock_response_body,
+ request=httpx.Request("POST",
"https://events.pagerduty.com/v2/change/enqueue"),
+ )
+
+ mock_response.ok = True
+ mock_request.return_value = mock_response
resp = hook.create_change_event(summary="test", source="airflow")
+ mock_request.assert_called_once()
assert resp is None, "No response expected for change event"
- def test_send_event(self, requests_mock, events_connections):
+ @patch.object(EventsApiV2Client, "request")
+ def test_send_event_success(self, mock_request, events_connections):
+ """Test that send_event returns dedup_key on success"""
hook = PagerdutyEventsHook(pagerduty_events_conn_id=DEFAULT_CONN_ID)
dedup_key = "samplekeyhere"
+
mock_response_body = {
"status": "success",
"message": "Event processed",
"dedup_key": dedup_key,
}
- requests_mock.post("https://events.pagerduty.com/v2/enqueue",
json=mock_response_body)
- resp = hook.send_event(summary="test", source="airflow_test",
severity="error", dedup_key=dedup_key)
+ mock_response = httpx.Response(
+ status_code=202,
+ json=mock_response_body,
+ request=httpx.Request("POST",
"https://events.pagerduty.com/v2/enqueue"),
+ )
+ mock_response.ok = True
+ mock_request.return_value = mock_response
+
+ resp = hook.send_event(
+ summary="test",
+ source="airflow_test",
+ severity="error",
+ dedup_key=dedup_key,
+ )
+
+ mock_request.assert_called_once()
assert resp == dedup_key