from typing import Dict import responses from langchain_community.utilities.infobip import InfobipAPIWrapper def test_send_sms() -> None: infobip: InfobipAPIWrapper = InfobipAPIWrapper( infobip_api_key="test", infobip_base_url="https://api.infobip.com", ) json_response: Dict = { "messages": [ { "messageId": "123", "status": { "description": "Message sent to next instance", "groupId": 1, "groupName": "PENDING", "id": 26, "name": "PENDING_ACCEPTED", }, "to": "41793026727", } ] } with responses.RequestsMock() as rsps: rsps.add( responses.POST, "https://api.infobip.com/sms/2/text/advanced", json=json_response, status=200, ) response: str = infobip.run( body="test", to="41793026727", sender="41793026727", channel="sms", ) assert response == "123" def test_send_email() -> None: infobip: InfobipAPIWrapper = InfobipAPIWrapper( infobip_api_key="test", infobip_base_url="https://api.infobip.com", ) json_response: Dict = { "bulkId": "123", "messages": [ { "to": "test@example.com", "messageId": "123", "status": { "groupId": 1, "groupName": "PENDING", "id": 26, "name": "PENDING_ACCEPTED", "description": "Message accepted, pending for delivery.", }, } ], } with responses.RequestsMock() as rsps: rsps.add( responses.POST, "https://api.infobip.com/email/3/send", json=json_response, status=200, ) response: str = infobip.run( body="test", to="test@example.com", sender="test@example.com", subject="test", channel="email", ) assert response == "123"