def test_should_allow_api_call_if_under_day_limit_regardless_of_type( notify_db, notify_db_session, notify_api, sample_user, mocker, restricted): with notify_api.test_request_context(): with notify_api.test_client() as client: mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') mocker.patch('app.encryption.encrypt', return_value="something_encrypted") service = create_sample_service(notify_db, notify_db_session, limit=2, restricted=restricted) email_template = create_sample_email_template(notify_db, notify_db_session, service=service) sms_template = create_sample_template(notify_db, notify_db_session, service=service) create_sample_notification(notify_db, notify_db_session, template=email_template, service=service) data = { 'to': sample_user.mobile_number, 'template': str(sms_template.id) } auth_header = create_authorization_header(service_id=service.id) response = client.post( path='/notifications/sms', data=json.dumps(data), headers=[('Content-Type', 'application/json'), auth_header]) assert response.status_code == 201
def test_should_block_api_call_if_over_day_limit_for_restricted_service( notify_db, notify_db_session, notify_api, mocker): with notify_api.test_request_context(): with notify_api.test_client() as client: mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') mocker.patch('app.encryption.encrypt', return_value="something_encrypted") service = create_sample_service(notify_db, notify_db_session, limit=1, restricted=True) email_template = create_sample_email_template(notify_db, notify_db_session, service=service) create_sample_notification( notify_db, notify_db_session, template=email_template, service=service, created_at=datetime.utcnow() ) data = { 'to': '*****@*****.**', 'template': str(email_template.id) } auth_header = create_authorization_header(service_id=service.id) response = client.post( path='/notifications/email', data=json.dumps(data), headers=[('Content-Type', 'application/json'), auth_header]) json.loads(response.get_data(as_text=True)) assert response.status_code == 429
def test_should_not_return_html_in_body(notify_api, notify_db, notify_db_session, mocker): with notify_api.test_request_context(): with notify_api.test_client() as client: mocker.patch('app.celery.provider_tasks.deliver_email.apply_async') email_template = create_sample_email_template(notify_db, notify_db.session, content='hello\nthere') data = { 'to': '*****@*****.**', 'template': str(email_template.id) } auth_header = create_authorization_header(service_id=email_template.service_id) response = client.post( path='/notifications/email', data=json.dumps(data), headers=[('Content-Type', 'application/json'), auth_header]) assert response.status_code == 201 assert json.loads(response.get_data(as_text=True))['data']['body'] == 'hello\nthere'