Skip to content

Commit a92319a

Browse files
Fix Pagerduty tests for latest version 6.0.0 (apache#57216)
* Fix Pagerduty tests for latest version 6.0.0 * Fix tests
1 parent 1d96f67 commit a92319a

File tree

2 files changed

+44
-7
lines changed

2 files changed

+44
-7
lines changed

providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
# under the License.
1818
from __future__ import annotations
1919

20+
from unittest.mock import patch
21+
22+
import pagerduty
2023
import pytest
2124

2225
from airflow.models import Connection
@@ -57,7 +60,8 @@ def test_token_parameter_override(self):
5760
hook = PagerdutyHook(token="pagerduty_param_token", pagerduty_conn_id=DEFAULT_CONN_ID)
5861
assert hook.token == "pagerduty_param_token", "token initialised."
5962

60-
def test_get_service(self, requests_mock):
63+
@patch.object(pagerduty.RestApiV2Client, "rget")
64+
def test_get_service(self, rget):
6165
hook = PagerdutyHook(pagerduty_conn_id=DEFAULT_CONN_ID)
6266
mock_response_body = {
6367
"id": "PZYX321",
@@ -67,7 +71,7 @@ def test_get_service(self, requests_mock):
6771
"summary": "Apache Airflow",
6872
"self": "https://api.pagerduty.com/services/PZYX321",
6973
}
70-
requests_mock.get("https://api.pagerduty.com/services/PZYX321", json={"service": mock_response_body})
74+
rget.return_value = mock_response_body
7175
client = hook.client()
7276
resp = client.rget("/services/PZYX321")
7377
assert resp == mock_response_body

providers/pagerduty/tests/unit/pagerduty/hooks/test_pagerduty_events.py

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@
1818
from __future__ import annotations
1919

2020
from unittest import mock
21+
from unittest.mock import patch
2122

23+
import httpx
24+
import pagerduty
2225
import pytest
2326
from aioresponses import aioresponses
27+
from pagerduty import EventsApiV2Client
2428

2529
from airflow.models import Connection
2630
from airflow.providers.pagerduty.hooks.pagerduty_events import (
@@ -82,26 +86,55 @@ def test_token_parameter_override(self, events_connections):
8286
hook = PagerdutyEventsHook(integration_key="override_key", pagerduty_events_conn_id=DEFAULT_CONN_ID)
8387
assert hook.integration_key == "override_key", "token initialised."
8488

85-
def test_create_change_event(self, requests_mock, events_connections):
89+
@patch.object(pagerduty.EventsApiV2Client, "request")
90+
def test_create_change_event(self, mock_request, events_connections):
91+
"""Test that create_change_event sends a valid change event and returns None"""
92+
8693
hook = PagerdutyEventsHook(pagerduty_events_conn_id=DEFAULT_CONN_ID)
94+
8795
mock_response_body = {
8896
"message": "Change event processed",
8997
"status": "success",
9098
}
91-
requests_mock.post("https://events.pagerduty.com/v2/change/enqueue", json=mock_response_body)
99+
mock_response = httpx.Response(
100+
status_code=202,
101+
json=mock_response_body,
102+
request=httpx.Request("POST", "https://events.pagerduty.com/v2/change/enqueue"),
103+
)
104+
105+
mock_response.ok = True
106+
mock_request.return_value = mock_response
92107
resp = hook.create_change_event(summary="test", source="airflow")
108+
mock_request.assert_called_once()
93109
assert resp is None, "No response expected for change event"
94110

95-
def test_send_event(self, requests_mock, events_connections):
111+
@patch.object(EventsApiV2Client, "request")
112+
def test_send_event_success(self, mock_request, events_connections):
113+
"""Test that send_event returns dedup_key on success"""
96114
hook = PagerdutyEventsHook(pagerduty_events_conn_id=DEFAULT_CONN_ID)
97115
dedup_key = "samplekeyhere"
116+
98117
mock_response_body = {
99118
"status": "success",
100119
"message": "Event processed",
101120
"dedup_key": dedup_key,
102121
}
103-
requests_mock.post("https://events.pagerduty.com/v2/enqueue", json=mock_response_body)
104-
resp = hook.send_event(summary="test", source="airflow_test", severity="error", dedup_key=dedup_key)
122+
mock_response = httpx.Response(
123+
status_code=202,
124+
json=mock_response_body,
125+
request=httpx.Request("POST", "https://events.pagerduty.com/v2/enqueue"),
126+
)
127+
mock_response.ok = True
128+
mock_request.return_value = mock_response
129+
130+
resp = hook.send_event(
131+
summary="test",
132+
source="airflow_test",
133+
severity="error",
134+
dedup_key=dedup_key,
135+
)
136+
137+
mock_request.assert_called_once()
105138
assert resp == dedup_key
106139

107140

0 commit comments

Comments
 (0)