Allow test key to send irrespective of trial mode

When you use a simulate API key it should behave like a live service,
except for actually sending the messages. There should be no limits even
if the service is in trial mode.

This commit removes the restriction on sending messages to peole outside
your team when you’re in trial mode.
This commit is contained in:
Chris Hill-Scott
2016-08-30 10:47:27 +01:00
parent 287d32c037
commit 5eaec8c235
2 changed files with 46 additions and 7 deletions

View File

@@ -10,7 +10,7 @@ from notifications_python_client.authentication import create_jwt_token
import app
from app import encryption
from app.models import ApiKey, KEY_TYPE_TEAM
from app.models import ApiKey, KEY_TYPE_TEAM, KEY_TYPE_TEST
from app.dao.templates_dao import dao_get_all_templates_for_service, dao_update_template
from app.dao.services_dao import dao_update_service
from app.dao.api_key_dao import save_model_api_key
@@ -764,6 +764,41 @@ def test_should_send_email_if_team_api_key_and_a_service_user(notify_api, sample
assert response.status_code == 201
def test_should_send_email_to_anyone_with_test_key(notify_api, sample_email_template, mocker):
with notify_api.test_request_context(), notify_api.test_client() as client:
mocker.patch('app.celery.tasks.send_email.apply_async')
data = {
'to': 'anyone123@example.com',
'template': sample_email_template.id
}
sample_email_template.service.restricted = True
api_key = ApiKey(
service=sample_email_template.service,
name='test_key',
created_by=sample_email_template.created_by,
key_type=KEY_TYPE_TEST
)
save_model_api_key(api_key)
auth_header = create_jwt_token(secret=api_key.unsigned_secret, client_id=str(api_key.service_id))
response = client.post(
path='/notifications/email',
data=json.dumps(data),
headers=[('Content-Type', 'application/json'), ('Authorization', 'Bearer {}'.format(auth_header))]
)
app.celery.tasks.send_email.apply_async.assert_called_once_with(
ANY,
kwargs={
'api_key_id': str(api_key.id),
'key_type': api_key.key_type
},
queue='email'
)
assert response.status_code == 201
def test_should_send_sms_if_team_api_key_and_a_service_user(notify_api, sample_template, mocker):
with notify_api.test_request_context(), notify_api.test_client() as client:
mocker.patch('app.celery.tasks.send_sms.apply_async')