def test_transformToHoldsOpenPeriod(self) -> None: # Arrange ip = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, external_id="123-1", admission_date=_DATE_1, admission_reason=StateIncarcerationPeriodAdmissionReason. TEMPORARY_CUSTODY.value, admission_reason_raw_text="PV", incarceration_type=StateIncarcerationType.COUNTY_JAIL.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) expected_ip = attr.evolve(self.to_entity(ip)) ips = [ip] expected_ips = [expected_ip] # Act _update_temporary_holds_helper(ips, self.overrides) # Assert entity_ips = [self.to_entity(ip) for ip in ips] self.assertCountEqual(entity_ips, expected_ips)
def test_transformToHolds_nonTransferReason(self) -> None: # Arrange ip = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, admission_date=_DATE_1, admission_reason=StateIncarcerationPeriodAdmissionReason. PAROLE_REVOCATION.value, admission_reason_raw_text="PV", release_date=_DATE_2, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER. value, incarceration_type=StateIncarcerationType.COUNTY_JAIL.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) ip_2 = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, admission_date=_DATE_2, admission_reason=StateIncarcerationPeriodAdmissionReason. NEW_ADMISSION.value, release_date=_DATE_3, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER. value, incarceration_type=StateIncarcerationType.STATE_PRISON.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) expected_ip = attr.evolve( self.to_entity(ip), admission_reason=StateIncarcerationPeriodAdmissionReason. TEMPORARY_CUSTODY, release_reason=StateIncarcerationPeriodReleaseReason. RELEASED_FROM_TEMPORARY_CUSTODY, ) expected_ip_2 = attr.evolve(self.to_entity(ip_2)) ips = [ip, ip_2] expected_ips = [expected_ip, expected_ip_2] overrides = self.create_fake_nd_region().get_enum_overrides() # Act _update_temporary_holds_helper(ips, overrides) # Assert entity_ips = [self.to_entity(ip) for ip in ips] self.assertCountEqual(entity_ips, expected_ips)
def test_transformToHoldsOpenPeriod(self): # Arrange ip = schema.StateIncarcerationPeriod( external_id='123-1', admission_date=_DATE_1, admission_reason=StateIncarcerationPeriodAdmissionReason.TEMPORARY_CUSTODY.value, admission_reason_raw_text='PV', incarceration_type=StateIncarcerationType.COUNTY_JAIL.value ) expected_ip = attr.evolve(self.to_entity(ip)) ips = [ip] expected_ips = [expected_ip] overrides = self.create_fake_nd_region().get_enum_overrides() # Act _update_temporary_holds_helper(ips, overrides) # Assert entity_ips = [self.to_entity(ip) for ip in ips] self.assertCountEqual(entity_ips, expected_ips)
def test_transformToHolds_takeAdmissionReasonFromConsecutive(self): # Arrange # Too long of a time gap between date_1 and date_2 to be # considered consecutive date_1 = _DATE_1 date_2 = date_1 + datetime.timedelta(days=3) date_3 = date_2 + datetime.timedelta(days=2) ip = schema.StateIncarcerationPeriod( admission_date=date_1, admission_reason= StateIncarcerationPeriodAdmissionReason.PAROLE_REVOCATION.value, admission_reason_raw_text='PV', release_date=date_1, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER.value, incarceration_type=StateIncarcerationType.EXTERNAL_UNKNOWN.value ) ip_2 = schema.StateIncarcerationPeriod( admission_date=date_2, admission_reason= StateIncarcerationPeriodAdmissionReason.NEW_ADMISSION.value, release_date=date_2, admission_reason_raw_text='ADM', release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER.value, incarceration_type=StateIncarcerationType.COUNTY_JAIL.value, ) ip_3 = schema.StateIncarcerationPeriod( admission_date=date_3, admission_reason= StateIncarcerationPeriodAdmissionReason.TRANSFER.value, admission_reason_raw_text='INT', release_date=date_3, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER.value, incarceration_type=StateIncarcerationType.STATE_PRISON.value, ) expected_ip = attr.evolve( self.to_entity(ip), admission_reason= StateIncarcerationPeriodAdmissionReason.TEMPORARY_CUSTODY, release_reason= StateIncarcerationPeriodReleaseReason. RELEASED_FROM_TEMPORARY_CUSTODY) expected_ip_2 = attr.evolve( self.to_entity(ip_2), admission_reason= StateIncarcerationPeriodAdmissionReason.TEMPORARY_CUSTODY, release_reason= StateIncarcerationPeriodReleaseReason. RELEASED_FROM_TEMPORARY_CUSTODY) expected_ip_3 = attr.evolve( self.to_entity(ip_3), admission_reason= StateIncarcerationPeriodAdmissionReason.NEW_ADMISSION) ips = [ip_2, ip, ip_3] expected_ips = [expected_ip, expected_ip_2, expected_ip_3] overrides = self.create_fake_nd_region().get_enum_overrides() # Act _update_temporary_holds_helper(ips, overrides) # Assert entity_ips = [self.to_entity(ip) for ip in ips] self.assertCountEqual(entity_ips, expected_ips)
def test_transformToHolds(self): # Arrange ip = schema.StateIncarcerationPeriod( admission_date=_DATE_1, admission_reason= StateIncarcerationPeriodAdmissionReason. PAROLE_REVOCATION.value, admission_reason_raw_text='PV', release_date=_DATE_2, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER.value, incarceration_type=StateIncarcerationType.EXTERNAL_UNKNOWN.value ) ip_2 = schema.StateIncarcerationPeriod( admission_date=_DATE_2, admission_reason= StateIncarcerationPeriodAdmissionReason.TRANSFER.value, admission_reason_raw_text='INT', release_date=_DATE_3, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER.value, incarceration_type=StateIncarcerationType.COUNTY_JAIL.value, ) ip_3 = schema.StateIncarcerationPeriod( admission_date=_DATE_3, admission_reason= StateIncarcerationPeriodAdmissionReason.TRANSFER.value, admission_reason_raw_text='INT', release_date=_DATE_4, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER.value, incarceration_type=StateIncarcerationType.STATE_PRISON.value, ) ip_4 = schema.StateIncarcerationPeriod( admission_date=_DATE_4, admission_reason= StateIncarcerationPeriodAdmissionReason.TRANSFER.value, admission_reason_raw_text='INT', release_date=_DATE_5, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER.value, incarceration_type=StateIncarcerationType.COUNTY_JAIL.value, ) expected_ip = attr.evolve( self.to_entity(ip), admission_reason= StateIncarcerationPeriodAdmissionReason.TEMPORARY_CUSTODY, release_reason= StateIncarcerationPeriodReleaseReason. RELEASED_FROM_TEMPORARY_CUSTODY) expected_ip_2 = attr.evolve( self.to_entity(ip_2), admission_reason= StateIncarcerationPeriodAdmissionReason.TEMPORARY_CUSTODY, release_reason= StateIncarcerationPeriodReleaseReason. RELEASED_FROM_TEMPORARY_CUSTODY) expected_ip_3 = attr.evolve( self.to_entity(ip_3), admission_reason= StateIncarcerationPeriodAdmissionReason.PAROLE_REVOCATION) expected_ip_4 = attr.evolve(self.to_entity(ip_4)) ips = [ip_2, ip_4, ip, ip_3] expected_ips = [ expected_ip, expected_ip_2, expected_ip_3, expected_ip_4] overrides = self.create_fake_nd_region().get_enum_overrides() # Act _update_temporary_holds_helper(ips, overrides) # Assert entity_ips = [self.to_entity(ip) for ip in ips] self.assertCountEqual(entity_ips, expected_ips)
def test_transformToHolds_takeAdmissionReasonFromConsecutive(self) -> None: # Arrange # Too long of a time gap between date_1 and date_2 to be # considered consecutive date_1 = _DATE_1 date_2 = date_1 + datetime.timedelta(days=3) date_3 = date_2 + datetime.timedelta(days=2) ip = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, admission_date=date_1, admission_reason=StateIncarcerationPeriodAdmissionReason. PAROLE_REVOCATION.value, admission_reason_raw_text="PV", release_date=date_1, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER. value, incarceration_type=StateIncarcerationType.EXTERNAL_UNKNOWN.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) ip_2 = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, admission_date=date_2, admission_reason=StateIncarcerationPeriodAdmissionReason. NEW_ADMISSION.value, release_date=date_2, admission_reason_raw_text="ADM", release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER. value, incarceration_type=StateIncarcerationType.COUNTY_JAIL.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) ip_3 = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, admission_date=date_3, admission_reason=StateIncarcerationPeriodAdmissionReason.TRANSFER. value, admission_reason_raw_text="INT", release_date=date_3, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER. value, incarceration_type=StateIncarcerationType.STATE_PRISON.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) expected_ip = attr.evolve( self.to_entity(ip), admission_reason=StateIncarcerationPeriodAdmissionReason. TEMPORARY_CUSTODY, release_reason=StateIncarcerationPeriodReleaseReason. RELEASED_FROM_TEMPORARY_CUSTODY, ) expected_ip_2 = attr.evolve( self.to_entity(ip_2), admission_reason=StateIncarcerationPeriodAdmissionReason. TEMPORARY_CUSTODY, release_reason=StateIncarcerationPeriodReleaseReason. RELEASED_FROM_TEMPORARY_CUSTODY, ) expected_ip_3 = attr.evolve( self.to_entity(ip_3), admission_reason=StateIncarcerationPeriodAdmissionReason. NEW_ADMISSION, ) ips = [ip_2, ip, ip_3] expected_ips = [expected_ip, expected_ip_2, expected_ip_3] # Act _update_temporary_holds_helper(ips, self.overrides) # Assert entity_ips = [self.to_entity(ip) for ip in ips] self.assertCountEqual(entity_ips, expected_ips)
def test_transformToHolds(self) -> None: # Arrange ip = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, admission_date=_DATE_1, admission_reason=StateIncarcerationPeriodAdmissionReason. PAROLE_REVOCATION.value, admission_reason_raw_text="PV", release_date=_DATE_2, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER. value, incarceration_type=StateIncarcerationType.EXTERNAL_UNKNOWN.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) ip_2 = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, admission_date=_DATE_2, admission_reason=StateIncarcerationPeriodAdmissionReason.TRANSFER. value, admission_reason_raw_text="INT", release_date=_DATE_3, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER. value, incarceration_type=StateIncarcerationType.COUNTY_JAIL.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) ip_3 = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, admission_date=_DATE_3, admission_reason=StateIncarcerationPeriodAdmissionReason.TRANSFER. value, admission_reason_raw_text="INT", release_date=_DATE_4, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER. value, incarceration_type=StateIncarcerationType.STATE_PRISON.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) ip_4 = schema.StateIncarcerationPeriod( state_code=_STATE_CODE, admission_date=_DATE_4, admission_reason=StateIncarcerationPeriodAdmissionReason.TRANSFER. value, admission_reason_raw_text="INT", release_date=_DATE_5, release_reason=StateIncarcerationPeriodReleaseReason.TRANSFER. value, incarceration_type=StateIncarcerationType.COUNTY_JAIL.value, status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO, ) expected_ip = attr.evolve( self.to_entity(ip), admission_reason=StateIncarcerationPeriodAdmissionReason. TEMPORARY_CUSTODY, release_reason=StateIncarcerationPeriodReleaseReason. RELEASED_FROM_TEMPORARY_CUSTODY, ) expected_ip_2 = attr.evolve( self.to_entity(ip_2), admission_reason=StateIncarcerationPeriodAdmissionReason. TEMPORARY_CUSTODY, release_reason=StateIncarcerationPeriodReleaseReason. RELEASED_FROM_TEMPORARY_CUSTODY, ) expected_ip_3 = attr.evolve( self.to_entity(ip_3), admission_reason=StateIncarcerationPeriodAdmissionReason. PAROLE_REVOCATION, ) expected_ip_4 = attr.evolve(self.to_entity(ip_4)) ips = [ip_2, ip_4, ip, ip_3] expected_ips = [ expected_ip, expected_ip_2, expected_ip_3, expected_ip_4 ] # Act _update_temporary_holds_helper(ips, self.overrides) # Assert entity_ips = [self.to_entity(ip) for ip in ips] self.assertCountEqual(entity_ips, expected_ips)