def test_create_ugm_api_using_anon_user_task_id_ok(self): expected_status = HTTPStatus.CREATED ugm_json = { "anon_user_task_id": "f7894c6b-0391-4061-8f97-89b674cb61e3", "user_group_id": "6acd224d-03d7-4a25-95d4-0afe80831ebc", } body = json.dumps(ugm_json) result = test_tools.test_post(create_user_group_membership_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) # # modified is not part of body supplied but is returned expected_body = { "user_id": "d1070e81-557e-40eb-a7ba-b951ddb7ebdc", "user_group_id": "6acd224d-03d7-4a25-95d4-0afe80831ebc", } self.new_uuid_test_and_remove(result_json) self.now_datetime_test_and_remove(result_json, "created") self.now_datetime_test_and_remove(result_json, "modified") self.assertEqual(expected_status, result_status, "Return status incorrect") self.assertDictEqual(expected_body, result_json, "Return body incorrect") # now check we can't insert same record again... expected_status = HTTPStatus.NO_CONTENT result = test_tools.test_post(create_user_group_membership_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] self.assertEqual(expected_status, result_status)
def test_create_user_group_membership_api_ok_and_duplicate(self): expected_status = HTTPStatus.CREATED ugm_json = { "user_id": "1cbe9aad-b29f-46b5-920e-b4c496d42515", "user_group_id": "de1192a0-bce9-4a74-b177-2a209c8deeb4", } body = json.dumps(ugm_json) result = test_tools.test_post(create_user_group_membership_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) # # modified is not part of body supplied but is returned expected_body = dict.copy(ugm_json) self.new_uuid_test_and_remove(result_json) self.now_datetime_test_and_remove(result_json, "created") self.now_datetime_test_and_remove(result_json, "modified") self.assertEqual(expected_status, result_status, "Return status incorrect") self.assertDictEqual(expected_body, result_json, "Return body incorrect") # now check we can't insert same record again... expected_status = HTTPStatus.NO_CONTENT result = test_tools.test_post(create_user_group_membership_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] self.assertEqual(expected_status, result_status)
def test_18_create_user_task_api_task_is_not_active_or_testing(self): expected_status = HTTPStatus.BAD_REQUEST ut_json = { "user_id": "d1070e81-557e-40eb-a7ba-b951ddb7ebdc", "project_task_id": "84b37547-40d5-4843-97e7-d1666e02d522", # planned "consented": "2018-06-12 16:16:56.087895+01", } body = json.dumps(ut_json) result = test_post(create_user_task_api, ENTITY_BASE_URL, None, body, None) self.assertEqual(expected_status, result["statusCode"]) result_json = json.loads(result["body"]) self.assertEqual("Project task is not active or testing", result_json["message"]) self.assertTrue("event" in result_json) ut_json = { "user_id": "d1070e81-557e-40eb-a7ba-b951ddb7ebdc", "project_task_id": "33345c03-52ab-4ac8-8a4a-d8c95660f0f3", # complete "consented": "2018-06-12 16:16:56.087895+01", } body = json.dumps(ut_json) result = test_post(create_user_task_api, ENTITY_BASE_URL, None, body, None) self.assertEqual(expected_status, result["statusCode"])
def test_ugm_new_from_json_url_code_no_sibling_test_group_ok(self): """ Membership of user group with no sister testing group is created even if group only has visibility of tasks with status == testing """ expected_status = HTTPStatus.CREATED user_id = "e067ed7b-bc98-454f-9c5e-573e2da5705c" group_id = "d279e19b-0995-4239-9640-80de966b09a3" ugm_json = { "user_id": user_id, "url_code": "g3_code", } body = json.dumps(ugm_json) result = test_tools.test_post(create_user_group_membership_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) expected_body = { "user_id": user_id, "user_group_id": group_id, } self.new_uuid_test_and_remove(result_json) self.now_datetime_test_and_remove(result_json, "created") self.now_datetime_test_and_remove(result_json, "modified") self.assertEqual(expected_status, result_status, "Return status incorrect") self.assertDictEqual(expected_body, result_json, "Return body incorrect")
def test_17_create_user_task_api_ok_interview_task(self): expected_status = HTTPStatus.CREATED user_id = "dceac123-03a7-4e29-ab5a-739e347b374d" # Fred ut_json = { "user_id": user_id, "project_task_id": "387166e6-99fd-4c98-84a5-3908f942dcb3", # interview "consented": "2018-06-12 16:16:56.087895+01", } body = json.dumps(ut_json) result = test_post(create_user_task_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) url = result_json["url"] self.assertEqual(expected_status, result_status) expected_substrings = [ "https://www.qualtrics.com", "?anon_project_specific_user_id=", "&first_name=Fred", "&anon_user_task_id=", "&external_task_id=5678", f"&env={TEST_ENV}", "&last_name=Flintstone", "&email=fred%40email.co.uk", ] for es in expected_substrings: self.assertIn( member=es, container=url, )
def test_ugm_new_from_json_url_code_add_to_sibling_test_group_ok(self): expected_status = HTTPStatus.CREATED sister_test_group_id = "9cabcdea-8169-4101-87bd-24fd92c9a6da" ugm_json = { "user_id": "d1070e81-557e-40eb-a7ba-b951ddb7ebdc", "url_code": "paramedics_code", } body = json.dumps(ugm_json) result = test_tools.test_post(create_user_group_membership_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) expected_body = { "user_id": "d1070e81-557e-40eb-a7ba-b951ddb7ebdc", "user_group_id": sister_test_group_id, } self.new_uuid_test_and_remove(result_json) self.now_datetime_test_and_remove(result_json, "created") self.now_datetime_test_and_remove(result_json, "modified") self.assertEqual(expected_status, result_status, "Return status incorrect") self.assertDictEqual(expected_body, result_json, "Return body incorrect")
def test_create_user_task_api_with_apsuid_ok(self): anon_project_specific_user_id = "eb354880-e789-4a4a-9d13-40c4b96c960d" ut_json = { "anon_project_specific_user_id": anon_project_specific_user_id, "project_task_id": "683598e8-435f-4052-a417-f0f6d808373a", "consented": "2018-07-19 16:16:56.087895+01", } expected_status = HTTPStatus.CREATED body = json.dumps(ut_json) result = test_post(create_user_task_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) # now remove from returned object those that weren't in input json and test separately ut_id = self.new_uuid_test_and_remove(result_json) anon_user_task_id = self.uuid_test_and_remove(result_json, "anon_user_task_id") self.now_datetime_test_and_remove(result_json, "created") self.now_datetime_test_and_remove(result_json, "modified") status = result_json["status"] del result_json["status"] task_provider_name = result_json["task_provider_name"] del result_json["task_provider_name"] url = result_json["url"] del result_json["url"] user_project_id = result_json["user_project_id"] del result_json["user_project_id"] user_id = result_json["user_id"] del result_json["user_id"] # remove anon_project_specific_user_id from input json del ut_json["anon_project_specific_user_id"] self.assertEqual(expected_status, result_status) self.assertDictEqual(ut_json, result_json) # now check individual data items self.assertEqual("8518c7ed-1df4-45e9-8dc4-d49b57ae0663", user_id) self.assertEqual("Qualtrics", task_provider_name) expected_url = ( f"https://www.qualtrics.com" f"?anon_project_specific_user_id=7e6e4bca-4f0b-4f71-8660-790c1baf3b11" f"&anon_user_task_id={anon_user_task_id}" f"&first_name=Clive" f"&project_task_id=683598e8-435f-4052-a417-f0f6d808373a" f"&external_task_id=ext-6b" f"&env={TEST_ENV}") self.assertEqual(expected_url, url) self.assertEqual("active", status) self.assertEqual("ddf0750a-758e-47de-aef3-055d0af41d3d", user_project_id)
def test_14_create_user_task_api_ok_with_specific_url(self): self.clear_personal_links_table() self.add_unassigned_links_to_personal_links_table(20) self.add_assigned_link_to_personal_links_table( url=self.base_user_specific_url) user_id = "8518c7ed-1df4-45e9-8dc4-d49b57ae0663" ut_json = { "user_id": user_id, "project_task_id": "4ee70544-6797-4e21-8cec-5653c8d5b234", "consented": "2018-07-19 16:16:56.087895+01", "anon_user_task_id": "6fc8cf2d-78d2-4c51-be16-e41e4235fcc9", } expected_status = HTTPStatus.CREATED body = json.dumps(ut_json) result = test_post(create_user_task_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] self.assertEqual(expected_status, result_status) result_json = json.loads(result["body"]) url = result_json["url"] expected_url = ( f"{self.base_user_specific_url}" f"&anon_project_specific_user_id=87b8f9a8-2400-4259-a8d9-a2f0b16d9ea1" f"&anon_user_task_id=6fc8cf2d-78d2-4c51-be16-e41e4235fcc9" f"&project_task_id=4ee70544-6797-4e21-8cec-5653c8d5b234" f"&external_task_id=5678" f"&env={TEST_ENV}") self.assertEqual(expected_url, url)
def test_ugm_new_from_json_url_code_add_to_sibling_test_group_ignored( self): """ Sister testing group is ignored if group has visibility of one or more tasks with status != testing """ expected_status = HTTPStatus.CREATED user_id = "e067ed7b-bc98-454f-9c5e-573e2da5705c" group_id = "de1192a0-bce9-4a74-b177-2a209c8deeb4" ugm_json = { "user_id": user_id, "url_code": "g1", } body = json.dumps(ugm_json) result = test_tools.test_post(create_user_group_membership_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) expected_body = { "user_id": user_id, "user_group_id": group_id, } self.new_uuid_test_and_remove(result_json) self.now_datetime_test_and_remove(result_json, "created") self.now_datetime_test_and_remove(result_json, "modified") self.assertEqual(expected_status, result_status, "Return status incorrect") self.assertDictEqual(expected_body, result_json, "Return body incorrect")
def test_02_create_user_external_account_api_with_defaults(self): from api.endpoints.user_external_account import create_user_external_account_api expected_status = HTTPStatus.CREATED uea_json = { "external_system_id": "e056e0bf-8d24-487e-a57b-4e812b40c4d8", "user_id": "1cbe9aad-b29f-46b5-920e-b4c496d42515", "external_user_id": "abc74", } body = json.dumps(uea_json) result = test_post(create_user_external_account_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) # now remove from returned object those that weren't in input json and test separately self.new_uuid_test_and_remove(result_json) self.now_datetime_test_and_remove(result_json, "created") self.now_datetime_test_and_remove(result_json, "modified") self.value_test_and_remove(result_json, "status", expected_value="active") self.assertEqual(expected_status, result_status) self.assertDictEqual(uea_json, result_json)
def test_send_email_api(self): expected_status = HTTPStatus.OK body_json = json.dumps(TEST_EMAIL_DICT) result = test_utils.test_post(ep.send_email_api, self.send_email_api_endpoint, request_body=body_json) self.assertEqual(expected_status, result['statusCode'])
def test_16_create_user_api_with_defaults(self): expected_status = HTTPStatus.CREATED user_json = { "email": "*****@*****.**", "first_name": "Harry", "last_name": "Hippie", "country_code": "GB", "status": "new", } body = json.dumps(user_json) result = test_post(create_user_api, ENTITY_BASE_URL, request_body=body) result_status = result["statusCode"] result_json = json.loads(result["body"]) # now remove from returned object those that weren't in input json and test separately self.new_uuid_test_and_remove(result_json) self.now_datetime_test_and_remove(result_json, "created") self.now_datetime_test_and_remove(result_json, "modified") auth0_id = result_json["auth0_id"] del result_json["auth0_id"] self.assertEqual(expected_status, result_status) # first check what's left in returned data user_json["country_name"] = "United Kingdom" user_json["avatar_string"] = "HH" user_json["crm_id"] = None user_json["title"] = None self.assertDictEqual(result_json, user_json) # now check individual data items self.assertIsNone(auth0_id)
def test_create_user_api_leading_and_trailing_spaces_striped_ok(self): expected_status = HTTPStatus.CREATED user_id = "c0010b50-fe46-40b4-ae8f-85a9b54708a5" user_email = "*****@*****.**" user_json = { "id": user_id, "created": "2018-08-21T11:16:56+01:00", "email": user_email, "title": "Mr", "first_name": "John ", "last_name": " Hooker", "auth0_id": "5678efgh", "country_code": "US", "crm_id": None, "status": "new", } body = json.dumps(user_json) result = test_post(create_user_api, ENTITY_BASE_URL, request_body=body) result_status = result["statusCode"] result_json = json.loads(result["body"]) # modified is not part of body supplied but is returned expected_body = dict.copy(user_json) expected_body["first_name"] = "John" expected_body["last_name"] = "Hooker" expected_body["modified"] = user_json["created"] expected_body["country_name"] = "United States" expected_body["avatar_string"] = "JH" # expected_body['avatar_image_url'] = '' # test results returned from api call self.assertEqual(expected_status, result_status) self.assertDictEqual(expected_body, result_json)
def test_15_create_user_api_ok_and_duplicate(self): expected_status = HTTPStatus.CREATED user_id = "48e30e54-b4fc-4303-963f-2943dda2b139" user_email = "*****@*****.**" user_json = { "id": user_id, "created": "2018-08-21T11:16:56+01:00", "email": user_email, "title": "Mr", "first_name": "Steven", "last_name": "Walcorn", "auth0_id": "1234abcd", "country_code": "GB", "crm_id": None, "status": "new", } body = json.dumps(user_json) result = test_post(create_user_api, ENTITY_BASE_URL, request_body=body) result_status = result["statusCode"] result_json = json.loads(result["body"]) # modified is not part of body supplied but is returned expected_body = dict.copy(user_json) expected_body["modified"] = user_json["created"] expected_body["country_name"] = "United Kingdom" expected_body["avatar_string"] = "SW" # expected_body['avatar_image_url'] = '' # test results returned from api call self.assertEqual(expected_status, result_status) self.assertDictEqual(expected_body, result_json) # duplicate checking... # now check we can't insert same record again... expected_status = HTTPStatus.CONFLICT result = test_post(create_user_api, ENTITY_BASE_URL, request_body=body) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue( "message" in result_json and "already exists" in result_json["message"] )
def test_post_forbidden_event_fails(self): t_event = deepcopy(test_event) t_event["detail-type"] = "delete_all_users" result = test_tools.test_post( local_method=ep.post_event, aws_url="/v1/event", request_body=json.dumps(t_event), ) self.assertEqual(HTTPStatus.BAD_REQUEST, result["statusCode"])
def test_post_event_ok(self): result = test_tools.test_post( local_method=ep.post_event, aws_url="/v1/event", request_body=json.dumps(test_event), ) self.assertEqual(HTTPStatus.OK, result["statusCode"]) time.sleep(1) events = self.ddb_client.scan(table_name=const.AUDIT_TABLE) self.assertEqual(1, len(events)) self.assertEqual("f2fac677-cb2c-42a0-9fa6-494059352569", events[0]["detail"]["user_id"])
def test_18_user_email_unique_constraint(self): """ Tests unique constraint on email field in user database table """ # create an user expected_status = HTTPStatus.BAD_REQUEST user_json = { "email": "*****@*****.**", "first_name": "Sidney", "last_name": "Silva", "country_code": "PT", "status": "new", } result = test_post( create_user_api, ENTITY_BASE_URL, request_body=json.dumps(user_json) ) result_status = result["statusCode"] result_json = json.loads(result["body"]) expected_message = "Database integrity error" expected_error = ( 'duplicate key value violates unique constraint "email_index"\nDETAIL: Key ' "(lower(email::text))=([email protected]) already exists.\n" ) self.assertEqual(expected_status, result_status) self.assertEqual(expected_message, result_json["message"]) self.assertEqual(expected_error, result_json["error"]) # now make sure the unique contraint is case insensitive user_json["email"] = "*****@*****.**" body = json.dumps(user_json) result = test_post(create_user_api, ENTITY_BASE_URL, request_body=body) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertEqual(expected_message, result_json["message"]) self.assertEqual(expected_error, result_json["error"])
def test_01_create_user_external_account_api_ok_and_duplicate(self): from api.endpoints.user_external_account import create_user_external_account_api expected_status = HTTPStatus.CREATED uea_json = { "external_system_id": "e056e0bf-8d24-487e-a57b-4e812b40c4d8", "user_id": "35224bd5-f8a8-41f6-8502-f96e12d6ddde", "external_user_id": "cc02", "status": "active", "id": "9620089b-e9a4-46fd-bb78-091c8449d777", "created": "2018-06-13 14:15:16.171819+00", } body = json.dumps(uea_json) result = test_post(create_user_external_account_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) # modified is not part of body supplied but is returned expected_body = dict.copy(uea_json) expected_body["modified"] = "2018-06-13 14:15:16.171819+00" self.assertEqual(expected_status, result_status) self.assertDictEqual(expected_body, result_json) # now check we can't insert same record again... expected_status = HTTPStatus.CONFLICT result = test_post(create_user_external_account_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue("message" in result_json and "already exists" in result_json["message"])
def test_04_create_user_projects_api_ok_and_duplicate(self): expected_status = HTTPStatus.CREATED up_json = { "user_id": "35224bd5-f8a8-41f6-8502-f96e12d6ddde", "project_id": "5907275b-6d75-4ec0-ada8-5854b44fb955", "anon_project_specific_user_id": "b75c864b-a002-466c-989f-16f63d5a6b18", "status": "active", "id": "9620089b-e9a4-46fd-bb78-091c8449d777", "created": "2018-06-13 14:15:16.171819+00", } body = json.dumps(up_json) result = test_post(create_user_project_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) # modified is not part of body supplied but is returned expected_body = dict.copy(up_json) expected_body["modified"] = up_json["created"] self.assertEqual(expected_status, result_status) self.assertDictEqual(expected_body, result_json) # now check we can't insert same record again... expected_status = HTTPStatus.CONFLICT result = test_post(create_user_project_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue( ("message" in result_json) and ("already exists" in result_json["message"]) )
def test_10_create_user_task_api_task_missing_params(self): expected_status = HTTPStatus.BAD_REQUEST ut_json = {"user_id": "d1070e81-557e-40eb-a7ba-b951ddb7ebdc"} body = json.dumps(ut_json) result = test_post(create_user_task_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue(("parameter" in result_json) and ("project_task_id" in result_json["parameter"])) self.assertTrue( ("message" in result_json) and ("mandatory data missing" in result_json["message"]))
def test_10_create_user_projects_api_missing_params(self): expected_status = HTTPStatus.BAD_REQUEST up_json = {"user_id": "1cbe9aad-b29f-46b5-920e-b4c496d42516"} body = json.dumps(up_json) result = test_post(create_user_project_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue( ("parameter" in result_json) and ("project_id" in result_json["parameter"]) ) self.assertTrue( ("message" in result_json) and ("mandatory data missing" in result_json["message"]) )
def test_08_create_user_projects_api_project_not_exists(self): expected_status = HTTPStatus.BAD_REQUEST up_json = { "user_id": "1cbe9aad-b29f-46b5-920e-b4c496d42515", "project_id": "3ffc498f-8add-4448-b452-4fc7f463aa22", "status": "active", } body = json.dumps(up_json) result = test_post(create_user_project_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue( ("message" in result_json) and ("integrity error" in result_json["message"]) )
def test_06_create_user_projects_api_invalid_uuid(self): expected_status = HTTPStatus.BAD_REQUEST up_json = { "id": "9620089b-e9a4-46fd-bb78-091c8449d77z", "user_id": "1cbe9aad-b29f-46b5-920e-b4c496d42516", "project_id": "3ffc498f-8add-4448-b452-4fc7f463aa21", "status": "A", } body = json.dumps(up_json) result = test_post(create_user_project_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue( ("message" in result_json) and ("invalid" in result_json["message"]) )
def test_09_create_user_task_api_task_not_exists(self): expected_status = HTTPStatus.BAD_REQUEST ut_json = { "user_id": "d1070e81-557e-40eb-a7ba-b951ddb7ebdc", "project_task_id": "ebd5f57b-e77c-4f26-9ae4-b65cdabaf019", "status": "active", "consented": "2018-06-12 16:16:56.087895+01", } body = json.dumps(ut_json) result = test_post(create_user_task_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue(("message" in result_json) and ("project_task" in result_json["message"]))
def test_04_create_user_external_account_api_ext_sys_not_exists(self): from api.endpoints.user_external_account import create_user_external_account_api expected_status = HTTPStatus.BAD_REQUEST uea_json = { "external_system_id": "e056e0bf-8d24-487e-a57b-4e812b40c4d9", "user_id": "35224bd5-f8a8-41f6-8502-f96e12d6ddde", "external_user_id": "cc02", } body = json.dumps(uea_json) result = test_post(create_user_external_account_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue("message" in result_json and "integrity error" in result_json["message"])
def test_03_create_user_external_account_api_user_not_exists(self): from api.endpoints.user_external_account import create_user_external_account_api expected_status = HTTPStatus.NOT_FOUND uea_json = { "external_system_id": "4a7ceb98-888c-4e38-8803-4a25ddf64ef4", "user_id": "8e385316-5827-4c72-8d4b-af5c57ff4670", "external_user_id": "cc02", "status": "active", } body = json.dumps(uea_json) result = test_post(create_user_external_account_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue("message" in result_json and "does not exist" in result_json["message"])
def test_05_create_user_projects_api_with_defaults(self): expected_status = HTTPStatus.CREATED up_json = { "user_id": "1cbe9aad-b29f-46b5-920e-b4c496d42515", "project_id": "5907275b-6d75-4ec0-ada8-5854b44fb955", } body = json.dumps(up_json) result = test_post(create_user_project_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] self.assertEqual(expected_status, result_status) result_json = json.loads(result["body"]) # now remove from returned object those that weren't in input json and test separately self.new_uuid_test_and_remove(result_json) self.uuid_test_and_remove(result_json, "anon_project_specific_user_id") self.now_datetime_test_and_remove(result_json, "created") self.now_datetime_test_and_remove(result_json, "modified") self.value_test_and_remove(result_json, "status", expected_value="active") self.assertDictEqual(up_json, result_json)
def test_09_create_user_external_account_api_missing_params(self): from api.endpoints.user_external_account import create_user_external_account_api expected_status = HTTPStatus.BAD_REQUEST uea_json = { "external_system_id": "e056e0bf-8d24-487e-a57b-4e812b40c4d8", "external_user_id": "cc02", } body = json.dumps(uea_json) result = test_post(create_user_external_account_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue("parameter" in result_json and "user_id" in result_json["parameter"]) self.assertTrue("message" in result_json and "mandatory data missing" in result_json["message"])
def test_19_create_user_email_case_conversion(self): expected_status = HTTPStatus.CREATED user_id = "bb918e21-5f8f-4472-94da-34064d941f2d" user_email = "*****@*****.**" user_json = { "id": user_id, "created": "2020-06-21T11:20:56+01:00", "email": user_email, "title": "Mr", "first_name": "Hercule", "last_name": "Poirot", "auth0_id": "1234abcd", "country_code": "BE", "crm_id": None, "status": "new", } body = json.dumps(user_json) result = test_post(create_user_api, ENTITY_BASE_URL, request_body=body) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertEqual(user_email.lower(), result_json["email"])
def test_07_create_user_external_account_api_bad_created_date(self): from api.endpoints.user_external_account import create_user_external_account_api expected_status = HTTPStatus.BAD_REQUEST uea_json = { "external_system_id": "e056e0bf-8d24-487e-a57b-4e812b40c4d8", "user_id": "35224bd5-f8a8-41f6-8502-f96e12d6ddde", "external_user_id": "cc02", "status": "active", "created": "2018-26-23 14:15:16.171819+00", } body = json.dumps(uea_json) result = test_post(create_user_external_account_api, ENTITY_BASE_URL, None, body, None) result_status = result["statusCode"] result_json = json.loads(result["body"]) self.assertEqual(expected_status, result_status) self.assertTrue("correlation_id" in result_json) self.assertTrue("datetime" in result_json) self.assertTrue("message" in result_json and "datetime" in result_json["message"])