Skip to content

Commit 9b29bb5

Browse files
fix: Faked http calls for test
1 parent b6ceec4 commit 9b29bb5

File tree

3 files changed

+34
-11
lines changed

3 files changed

+34
-11
lines changed

examples/notification/notification.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,5 +115,7 @@ def create_notification_request_for_alarm(
115115
address_group=address_group,
116116
message_template=alarm_creation_template,
117117
)
118-
notification_client.apply_dynamic_notification_strategy(request=notification_for_alarm_creation)
118+
notification_client.apply_dynamic_notification_strategy(
119+
request=notification_for_alarm_creation
120+
)
119121
print("Notification sent for alarm creation")

nisystemlink/clients/notification/models/_dynamic_notification_configuration.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,13 @@ def validate_required_pairs(self) -> DynamicNotificationConfiguration:
3636
one of message_template_id or message_template is present.
3737
"""
3838
if self.address_group_id is None and self.address_group is None:
39-
raise ValidationError("One of either AddressGroupId or AddressGroup is required.")
39+
raise ValidationError(
40+
"One of either AddressGroupId or AddressGroup is required."
41+
)
4042

4143
if self.message_template_id is None and self.message_template is None:
42-
raise ValidationError("One of either MessageTemplateId or MessageTemplate is required.")
44+
raise ValidationError(
45+
"One of either MessageTemplateId or MessageTemplate is required."
46+
)
4347

4448
return self

tests/integration/notification/test_notification_client.py

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
import responses
23
from nisystemlink.clients.core import ApiException
34
from nisystemlink.clients.core._http_configuration import HttpConfiguration
45
from nisystemlink.clients.notification import NotificationClient
@@ -13,6 +14,8 @@
1314
)
1415
from pydantic import ValidationError
1516

17+
BASE_URL = "https://test-api.lifecyclesolutions.ni.com"
18+
1619

1720
@pytest.fixture
1821
def _address_group():
@@ -91,9 +94,15 @@ def client(enterprise_config: HttpConfiguration) -> NotificationClient:
9194
@pytest.mark.integration
9295
@pytest.mark.enterprise
9396
class TestNotificationClient:
97+
@responses.activate
9498
def test__apply_strategy_with_correct_request__returns_none(
9599
self, client: NotificationClient, request_model: DynamicStrategyRequest
96100
):
101+
responses.add(
102+
responses.POST,
103+
f"{BASE_URL}/ninotification/v1/apply-dynamic-strategy",
104+
status=204,
105+
)
97106
assert client.apply_dynamic_notification_strategy(request=request_model) is None
98107

99108
def test__apply_strategy_with_invalid_recipient__raises_exception(
@@ -118,14 +127,12 @@ def test__apply_strategy_with_invalid_recipient__raises_exception(
118127
),
119128
)
120129

121-
with pytest.raises(ApiException) as exc_info:
130+
with pytest.raises(ApiException, match="Bad Request") as exc_info:
122131
client.apply_dynamic_notification_strategy(request=request_model)
123132

124133
assert exc_info.value.http_status_code == 400
125134

126-
def test__create_strategy_with_no_configurations__raises_exception(
127-
self, client: NotificationClient
128-
):
135+
def test__create_strategy_with_no_configurations__raises_exception(self):
129136
with pytest.raises(ValidationError):
130137
DynamicStrategyRequest(
131138
message_template_substitution_fields={"replacement": "value"},
@@ -154,26 +161,30 @@ def test__apply_strategy_with_empty_subject_template_fields__raises_exception(
154161
),
155162
)
156163

157-
with pytest.raises(ApiException) as exc_info:
164+
with pytest.raises(ApiException, match="Bad Request") as exc_info:
158165
client.apply_dynamic_notification_strategy(request=request_model)
159166

160167
assert exc_info.value.http_status_code == 400
161168

162-
def test__create_smtp_address_group_with_invalid_interpreting_service__raises_exception(
163-
self,
164-
):
169+
def test__create_smtp_address_group_with_invalid_interpreting_service__raises_exception(self):
165170
with pytest.raises(ValidationError):
166171
SmtpAddressGroup(
167172
interpreting_service_name="invalid_service",
168173
fields=SmtpAddressFields(toAddresses=["address1@example.com"]),
169174
)
170175

176+
@responses.activate
171177
def test__apply_strategy_with_no_address_and_message_template_id__returns_none(
172178
self,
173179
client: NotificationClient,
174180
_address_group: SmtpAddressGroup,
175181
_message_template: SmtpMessageTemplate,
176182
):
183+
responses.add(
184+
responses.POST,
185+
f"{BASE_URL}/ninotification/v1/apply-dynamic-strategy",
186+
status=204,
187+
)
177188
configuration = DynamicNotificationConfiguration(
178189
address_group=_address_group,
179190
message_template=_message_template,
@@ -189,11 +200,17 @@ def test__apply_strategy_with_no_address_and_message_template_id__returns_none(
189200
)
190201
assert client.apply_dynamic_notification_strategy(request=request_model) is None
191202

203+
@responses.activate
192204
def test__apply_multiple_notification_configurations__returns_none(
193205
self,
194206
client: NotificationClient,
195207
_address_group: SmtpAddressGroup,
196208
):
209+
responses.add(
210+
responses.POST,
211+
f"{BASE_URL}/ninotification/v1/apply-dynamic-strategy",
212+
status=204,
213+
)
197214
first_message_template = SmtpMessageTemplate(
198215
interpreting_service_name="smtp",
199216
fields=SmtpMessageTemplateFields(

0 commit comments

Comments
 (0)