"""Tests for Twilio OTP provider implementation.""" import pytest from unittest.mock import MagicMock, patch @pytest.mark.django_db @patch("apps.accounts.services.otp.TwilioOtpProvider._get_client") def test_twilio_send_sms_calls_client(mock_get_client): from apps.accounts.services.otp import TwilioOtpProvider mock_client = MagicMock() mock_get_client.return_value = mock_client with patch.dict("os.environ", { "TWILIO_ACCOUNT_SID": "AC123", "TWILIO_AUTH_TOKEN": "token", "TWILIO_FROM_NUMBER": "+966500000000", }): provider = TwilioOtpProvider() provider.send_sms("+966512345678", "Your code is 123456") mock_client.messages.create.assert_called_once_with( body="Your code is 123456", from_="+966500000000", to="+966512345678", ) @pytest.mark.django_db @patch("apps.accounts.services.otp.TwilioOtpProvider._get_client") def test_twilio_send_whatsapp_calls_client(mock_get_client): from apps.accounts.services.otp import TwilioOtpProvider mock_client = MagicMock() mock_get_client.return_value = mock_client with patch.dict("os.environ", { "TWILIO_ACCOUNT_SID": "AC123", "TWILIO_AUTH_TOKEN": "token", "TWILIO_FROM_NUMBER": "+966500000000", "TWILIO_WHATSAPP_FROM": "14155238886", }): provider = TwilioOtpProvider() provider.send_whatsapp("+966512345678", "Your code is 123456") mock_client.messages.create.assert_called_once_with( body="Your code is 123456", from_="whatsapp:14155238886", to="whatsapp:+966512345678", )