Exemplo n.º 1
0
    def test_readPeopleByExternalId(self):
        # Arrange
        person_no_match = schema.StatePerson(person_id=1)
        person_match_external_id = schema.StatePerson(person_id=2)
        person_external_id = schema.StatePersonExternalId(
            person_external_id_id=1,
            external_id=_EXTERNAL_ID,
            id_type=external_id_types.US_ND_SID,
            state_code=_STATE_CODE,
            person=person_match_external_id,
        )
        person_match_external_id.external_ids = [person_external_id]

        session = SessionFactory.for_schema_base(StateBase)
        session.add(person_no_match)
        session.add(person_match_external_id)
        session.commit()

        ingested_person = entities.StatePerson.new_with_defaults()
        ingested_person.external_ids = \
            [entities.StatePersonExternalId.new_with_defaults(
                external_id=_EXTERNAL_ID,
                id_type=external_id_types.US_ND_SID,
                state_code=_STATE_CODE,
                person=ingested_person,
            )]

        # Act
        people = dao.read_people_by_external_ids(session, _REGION,
                                                 [ingested_person])

        # Assert
        expected_people = [person_match_external_id]

        self.assertCountEqual(people, expected_people)
Exemplo n.º 2
0
    def test_readMultipleIngestedPeopleMatchSamePerson(self) -> None:
        # Arrange
        person = schema.StatePerson(person_id=1, state_code=_STATE_CODE)
        person_external_id = schema.StatePersonExternalId(
            person_external_id_id=1,
            external_id=_EXTERNAL_ID,
            id_type=external_id_types.US_ND_SID,
            state_code=_STATE_CODE,
            person=person,
        )

        person_external_id2 = schema.StatePersonExternalId(
            person_external_id_id=2,
            external_id=_EXTERNAL_ID2,
            id_type=external_id_types.US_ND_SID,
            state_code=_STATE_CODE,
            person=person,
        )

        person.external_ids = [person_external_id, person_external_id2]

        with SessionFactory.using_database(self.database_key,
                                           autocommit=False) as session:
            session.add(person)
            session.commit()

            ingested_person1 = entities.StatePerson.new_with_defaults(
                state_code=_STATE_CODE,
                external_ids=[
                    entities.StatePersonExternalId.new_with_defaults(
                        external_id=_EXTERNAL_ID,
                        id_type=external_id_types.US_ND_SID,
                        state_code=_STATE_CODE,
                    )
                ],
            )

            ingested_person2 = entities.StatePerson.new_with_defaults(
                state_code=_STATE_CODE,
                external_ids=[
                    entities.StatePersonExternalId.new_with_defaults(
                        external_id=_EXTERNAL_ID2,
                        id_type=external_id_types.US_ND_SID,
                        state_code=_STATE_CODE,
                    )
                ],
            )

            # Act
            people = dao.read_people_by_external_ids(
                session, _REGION, [ingested_person1, ingested_person2])

            # Assert
            expected_people = [person]

            self.assertCountEqual(people, expected_people)
Exemplo n.º 3
0
    def test_readPersonIdsMatchMultiplePeople(self):
        # Arrange
        person1 = schema.StatePerson(person_id=1)
        person1_external_id = schema.StatePersonExternalId(
            person_external_id_id=1,
            external_id=_EXTERNAL_ID,
            id_type=external_id_types.US_ND_SID,
            state_code=_STATE_CODE,
            person=person1,
        )
        person1.external_ids = [person1_external_id]

        person2 = schema.StatePerson(person_id=2)
        person2_external_id = schema.StatePersonExternalId(
            person_external_id_id=2,
            external_id=_EXTERNAL_ID,
            id_type=external_id_types.US_ND_SID,
            state_code=_STATE_CODE,
            person=person2,
        )
        person2.external_ids = [person2_external_id]

        session = SessionFactory.for_schema_base(StateBase)
        session.add(person1)
        session.add(person2)
        session.commit()

        ingested_person = entities.StatePerson.new_with_defaults()

        ingested_person.external_ids = \
            [
                entities.StatePersonExternalId.new_with_defaults(
                    external_id=_EXTERNAL_ID,
                    id_type=external_id_types.US_ND_SID,
                    state_code=_STATE_CODE),
                entities.StatePersonExternalId.new_with_defaults(
                    external_id=_EXTERNAL_ID2,
                    id_type=external_id_types.US_ND_SID,
                    state_code=_STATE_CODE)
            ]

        # Act
        people = dao.read_people_by_external_ids(session, _REGION,
                                                 [ingested_person])

        # Assert
        expected_people = [
            converter.convert_schema_object_to_entity(person1),
            converter.convert_schema_object_to_entity(person2)
        ]

        self.assertCountEqual(people, expected_people)
Exemplo n.º 4
0
    def test_readPersonMultipleIdsMatch(self) -> None:
        # Arrange
        person = schema.StatePerson(person_id=1, state_code=_STATE_CODE)
        person_external_id = schema.StatePersonExternalId(
            person_external_id_id=1,
            external_id=_EXTERNAL_ID,
            id_type=external_id_types.US_ND_SID,
            state_code=_STATE_CODE,
            person=person,
        )

        person_external_id2 = schema.StatePersonExternalId(
            person_external_id_id=2,
            external_id=_EXTERNAL_ID2,
            id_type=external_id_types.US_ND_SID,
            state_code=_STATE_CODE,
            person=person,
        )
        person.external_ids = [person_external_id, person_external_id2]

        session = SessionFactory.for_schema_base(StateBase)
        session.add(person)
        session.commit()

        ingested_person = entities.StatePerson.new_with_defaults(
            state_code=_STATE_CODE)

        ingested_person.external_ids = [
            entities.StatePersonExternalId.new_with_defaults(
                external_id=_EXTERNAL_ID,
                id_type=external_id_types.US_ND_SID,
                state_code=_STATE_CODE,
            ),
            entities.StatePersonExternalId.new_with_defaults(
                external_id=_EXTERNAL_ID2,
                id_type=external_id_types.US_ND_SID,
                state_code=_STATE_CODE,
            ),
        ]

        # Act
        people = dao.read_people_by_external_ids(session, _REGION,
                                                 [ingested_person])

        # Assert
        expected_people = [person]

        self.assertCountEqual(people, expected_people)
Exemplo n.º 5
0
    def test_readMultipleIngestedPeople(self) -> None:
        # Arrange
        person1 = schema.StatePerson(person_id=1, state_code=_STATE_CODE)
        person1_external_id = schema.StatePersonExternalId(
            person_external_id_id=1,
            external_id=_EXTERNAL_ID,
            id_type=external_id_types.US_ND_SID,
            state_code=_STATE_CODE,
            person=person1,
        )
        person1.external_ids = [person1_external_id]

        person2 = schema.StatePerson(person_id=2, state_code=_STATE_CODE)
        person2_external_id = schema.StatePersonExternalId(
            person_external_id_id=2,
            external_id=_EXTERNAL_ID2,
            id_type=external_id_types.US_ND_SID,
            state_code=_STATE_CODE,
            person=person2,
        )
        person2.external_ids = [person2_external_id]

        session = SessionFactory.for_schema_base(StateBase)
        session.add(person1)
        session.add(person2)
        session.commit()

        ingested_person1 = entities.StatePerson.new_with_defaults(
            state_code=_STATE_CODE,
            external_ids=[
                entities.StatePersonExternalId.new_with_defaults(
                    external_id=_EXTERNAL_ID,
                    id_type=external_id_types.US_ND_SID,
                    state_code=_STATE_CODE,
                )
            ],
        )

        ingested_person2 = entities.StatePerson.new_with_defaults(
            state_code=_STATE_CODE,
            external_ids=[
                entities.StatePersonExternalId.new_with_defaults(
                    external_id=_EXTERNAL_ID2,
                    id_type=external_id_types.US_ND_SID,
                    state_code=_STATE_CODE,
                )
            ],
        )

        ingested_person3 = entities.StatePerson.new_with_defaults(
            state_code=_STATE_CODE,
            external_ids=[
                entities.StatePersonExternalId.new_with_defaults(
                    external_id="NONEXISTENT_ID",
                    id_type=external_id_types.US_ND_SID,
                    state_code=_STATE_CODE,
                )
            ],
        )

        # Act
        people = dao.read_people_by_external_ids(
            session, _REGION,
            [ingested_person1, ingested_person2, ingested_person3])

        # Assert
        expected_people = [person1, person2]

        self.assertCountEqual(people, expected_people)