From f5e3c6f63ba282f6aa35580c1f6d661ffb27a2b7 Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Thu, 17 Nov 2016 14:02:44 +0000 Subject: [PATCH] Remove print stmt and added assert error content --- app/schema_validation/__init__.py | 2 +- .../test_notification_schemas.py | 20 ++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/schema_validation/__init__.py b/app/schema_validation/__init__.py index 63f3a198d..e3f267999 100644 --- a/app/schema_validation/__init__.py +++ b/app/schema_validation/__init__.py @@ -42,4 +42,4 @@ def build_error_message(errors): def __format_message(e): s = e.message.split("'") msg = "{}{}".format(s[1], s[2]) - return msg if not e.cause else "'{}' {}".format(e.path[0], e.cause.message) + return msg if not e.cause else "{} {}".format(e.path[0], e.cause.message) diff --git a/tests/app/v2/notifications/test_notification_schemas.py b/tests/app/v2/notifications/test_notification_schemas.py index 13b797f37..8b6620444 100644 --- a/tests/app/v2/notifications/test_notification_schemas.py +++ b/tests/app/v2/notifications/test_notification_schemas.py @@ -56,14 +56,19 @@ def test_post_sms_schema_with_personalisation_that_is_not_a_dict(): assert len(error.keys()) == 2 -@pytest.mark.parametrize('invalid_phone_number', - ['08515111111', '07515111*11', 'notaphoneumber']) -def test_post_sms_request_invalid_phone_number(invalid_phone_number): +@pytest.mark.parametrize('invalid_phone_number, err_msg', + [('08515111111', 'phone_number Not a UK mobile number'), + ('07515111*11', 'phone_number Must not contain letters or symbols'), + ('notaphoneumber', 'phone_number Must not contain letters or symbols')]) +def test_post_sms_request_invalid_phone_number(invalid_phone_number, err_msg): j = {"phone_number": invalid_phone_number, "template_id": str(uuid.uuid4()) } - with pytest.raises(ValidationError): + with pytest.raises(ValidationError) as e: validate(j, post_sms_request) + errors = json.loads(e.value.message).get('errors') + assert len(errors) == 1 + assert {"error": "ValidationError", "message": err_msg} == errors[0] def test_post_sms_request_invalid_phone_number_and_missing_template(): @@ -71,9 +76,10 @@ def test_post_sms_request_invalid_phone_number_and_missing_template(): } with pytest.raises(ValidationError) as e: validate(j, post_sms_request) - error = json.loads(e.value.message) - print(error) - assert len(error.get('errors')) == 2 + errors = json.loads(e.value.message).get('errors') + assert len(errors) == 2 + assert {"error": "ValidationError", "message": "phone_number Not a UK mobile number"} in errors + assert {"error": "ValidationError", "message": "template_id is a required property"} in errors valid_response = {