Files
notifications-api/tests/app/public_contracts/test_POST_notification.py
Kenneth Kehl 1ecb747c6d reformat
2023-08-29 14:54:30 -07:00

40 lines
1.2 KiB
Python

from flask import json
from tests import create_service_authorization_header
from . import return_json_from_response, validate_v0
def _post_notification(client, template, url, to):
data = {"to": to, "template": str(template.id)}
auth_header = create_service_authorization_header(service_id=template.service_id)
return client.post(
path=url,
data=json.dumps(data),
headers=[("Content-Type", "application/json"), auth_header],
)
def test_post_sms_contract(client, mocker, sample_template):
mocker.patch("app.celery.provider_tasks.deliver_sms.apply_async")
response_json = return_json_from_response(
_post_notification(
client, sample_template, url="/notifications/sms", to="202-867-5309"
)
)
validate_v0(response_json, "POST_notification_return_sms.json")
def test_post_email_contract(client, mocker, sample_email_template):
mocker.patch("app.celery.provider_tasks.deliver_email.apply_async")
response_json = return_json_from_response(
_post_notification(
client, sample_email_template, url="/notifications/email", to="foo@bar.com"
)
)
validate_v0(response_json, "POST_notification_return_email.json")