11import pytest
2+ import responses
23from nisystemlink .clients .core import ApiException
34from nisystemlink .clients .core ._http_configuration import HttpConfiguration
45from nisystemlink .clients .notification import NotificationClient
1314)
1415from pydantic import ValidationError
1516
17+ BASE_URL = "https://test-api.lifecyclesolutions.ni.com"
18+
1619
1720@pytest .fixture
1821def _address_group ():
@@ -91,9 +94,15 @@ def client(enterprise_config: HttpConfiguration) -> NotificationClient:
9194@pytest .mark .integration
9295@pytest .mark .enterprise
9396class 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