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)
Ejemplo n.º 3
0
    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")
Ejemplo n.º 5
0
    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")
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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)
Ejemplo n.º 11
0
 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'])
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
    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)
Ejemplo n.º 14
0
    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"]
        )
Ejemplo n.º 15
0
 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"])
Ejemplo n.º 16
0
    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"])
Ejemplo n.º 17
0
    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"])
Ejemplo n.º 19
0
    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"])
        )
Ejemplo n.º 20
0
    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"]))
Ejemplo n.º 21
0
    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"])
        )
Ejemplo n.º 22
0
    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"])
        )
Ejemplo n.º 23
0
    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"])
        )
Ejemplo n.º 24
0
    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"])
Ejemplo n.º 27
0
    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"])
Ejemplo n.º 29
0
    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"])