def test_send_sms_raises_if_twilio_fails_to_return_json(notify_api, mocker): to = '+61412345678' content = 'my message' reference = 'my reference' response_dict = 'not JSON' with pytest.raises(ValueError), requests_mock.Mocker() as request_mock: request_mock.post( 'https://api.twilio.com/2010-04-01/Accounts/TWILIO_TEST_ACCOUNT_SID_XXX/Messages.json', text=response_dict, status_code=200) twilio_sms_client.send_sms(to, content, reference)
def test_send_sms_calls_twilio_correctly(notify_api, mocker): to = '+61412345678' content = 'my message' reference = 'my reference' response_dict = make_twilio_message_response_dict() with requests_mock.Mocker() as request_mock: request_mock.post( 'https://api.twilio.com/2010-04-01/Accounts/TWILIO_TEST_ACCOUNT_SID_XXX/Messages.json', json=response_dict, status_code=200) reference, status = twilio_sms_client.send_sms(to, content, reference) assert reference == 'MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' assert status == NOTIFICATION_SENDING assert request_mock.call_count == 1 req = request_mock.request_history[0] assert req.url == 'https://api.twilio.com/2010-04-01/Accounts/TWILIO_TEST_ACCOUNT_SID_XXX/Messages.json' assert req.method == 'POST' d = dict(parse_qsl(req.text)) assert d["To"] == "+61412345678" assert d["Body"] == "my message"
def test_send_sms_raises_if_twilio_rejects(notify_api, mocker): to = '+61412345678' content = 'my message' reference = 'my reference' response_dict = {'code': 60082, 'message': 'it did not work'} with pytest.raises(TwilioRestException) as exc, requests_mock.Mocker( ) as request_mock: request_mock.post( 'https://api.twilio.com/2010-04-01/Accounts/TWILIO_TEST_ACCOUNT_SID_XXX/Messages.json', json=response_dict, status_code=400) twilio_sms_client.send_sms(to, content, reference) assert exc.value.status == 400 assert exc.value.code == 60082 assert exc.value.msg == "Unable to create record: it did not work"
def test_send_sms_sends_from_hardcoded_number(notify_api, mocker): to = '+61412345678' content = 'my message' reference = 'my reference' response_dict = make_twilio_message_response_dict() with requests_mock.Mocker() as request_mock: request_mock.post( 'https://api.twilio.com/2010-04-01/Accounts/TWILIO_TEST_ACCOUNT_SID_XXX/Messages.json', json=response_dict, status_code=200) twilio_sms_client.send_sms(to, content, reference) req = request_mock.request_history[0] d = dict(parse_qsl(req.text)) assert d["From"] == "+61412121121"