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)
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)
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)
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)
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)