def test_revoked_supervision_periods_if_revocation_occurred_with_general_purpose_US_ID( self, ) -> None: incarceration_period = StateIncarcerationPeriod.new_with_defaults( incarceration_period_id=222, external_id="ip2", state_code="US_ID", incarceration_type=StateIncarcerationType.STATE_PRISON, status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY, admission_date=date(2017, 5, 17), admission_reason=StateIncarcerationPeriodAdmissionReason. RETURN_FROM_SUPERVISION, release_date=date(2019, 5, 29), release_reason=ReleaseReason.SENTENCE_SERVED, specialized_purpose_for_incarceration= StateSpecializedPurposeForIncarceration.GENERAL, ) supervision_periods: List[StateSupervisionPeriod] = [] ( admission_is_revocation, revoked_periods, ) = state_calculation_config_manager.revoked_supervision_periods_if_revocation_occurred( incarceration_period.state_code, incarceration_period, supervision_periods, None, ) self.assertTrue(admission_is_revocation) self.assertEqual([], revoked_periods)
def test_revoked_supervision_periods_if_revocation_occurred_US_ID_InvestigationSupervision( self): supervision_period = StateSupervisionPeriod.new_with_defaults( supervision_period_id=111, external_id='sp1', status=StateSupervisionPeriodStatus.TERMINATED, state_code='US_ID', start_date=date(2017, 3, 5), termination_date=date(2017, 5, 9), supervision_period_supervision_type= StateSupervisionPeriodSupervisionType.INVESTIGATION) incarceration_period = StateIncarcerationPeriod.new_with_defaults( incarceration_period_id=222, external_id='ip2', state_code='US_ID', incarceration_type=StateIncarcerationType.STATE_PRISON, status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY, admission_date=date(2017, 5, 9), specialized_purpose_for_incarceration= StateSpecializedPurposeForIncarceration.GENERAL) supervision_periods = [supervision_period] admission_is_revocation, revoked_periods = \ state_calculation_config_manager.revoked_supervision_periods_if_revocation_occurred( incarceration_period, supervision_periods, None ) self.assertFalse(admission_is_revocation) self.assertEqual([], revoked_periods)
def test_revoked_supervision_periods_if_revocation_did_not_occur_with_treatment_transfer_US_ID( self, ) -> None: supervision_period = StateSupervisionPeriod.new_with_defaults( state_code="US_ID", start_date=date(2017, 1, 1), termination_date=date(2017, 5, 17), supervision_period_supervision_type= StateSupervisionPeriodSupervisionType.PAROLE, status=StateSupervisionPeriodStatus.PRESENT_WITHOUT_INFO, ) treatment_period = StateIncarcerationPeriod.new_with_defaults( incarceration_period_id=222, external_id="ip2", state_code="US_ID", incarceration_type=StateIncarcerationType.STATE_PRISON, status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY, admission_date=date(2017, 5, 17), admission_reason=AdmissionReason.RETURN_FROM_SUPERVISION, release_date=date(2017, 5, 29), release_reason=ReleaseReason.TRANSFER, specialized_purpose_for_incarceration= StateSpecializedPurposeForIncarceration.TREATMENT_IN_PRISON, ) incarceration_period = StateIncarcerationPeriod.new_with_defaults( incarceration_period_id=222, external_id="ip2", state_code="US_ID", incarceration_type=StateIncarcerationType.STATE_PRISON, status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY, admission_date=date(2017, 5, 29), admission_reason=AdmissionReason.TRANSFER, specialized_purpose_for_incarceration= StateSpecializedPurposeForIncarceration.GENERAL, ) supervision_periods = [supervision_period] ( admission_is_revocation, revoked_periods, ) = state_calculation_config_manager.revoked_supervision_periods_if_revocation_occurred( incarceration_period.state_code, incarceration_period, supervision_periods, treatment_period, ) self.assertFalse(admission_is_revocation) self.assertEqual([], revoked_periods)
def test_revoked_supervision_periods_if_revocation_occurred_US_ID_NoRecentSupervision( self, ) -> None: supervision_period = StateSupervisionPeriod.new_with_defaults( supervision_period_id=111, external_id="sp1", status=StateSupervisionPeriodStatus.TERMINATED, state_code="US_ID", start_date=date(2017, 3, 5), termination_date=date(2017, 5, 9), supervision_period_supervision_type= StateSupervisionPeriodSupervisionType.PROBATION, ) # Incarceration period that occurred more than SUPERVISION_PERIOD_PROXIMITY_MONTH_LIMIT months after # the most recent supervision period ended supervision_termination_date = supervision_period.termination_date if not supervision_termination_date: self.fail("Found None supervision period termination date.") incarceration_period = StateIncarcerationPeriod.new_with_defaults( incarceration_period_id=222, external_id="ip2", state_code="US_ID", incarceration_type=StateIncarcerationType.STATE_PRISON, status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY, admission_date=supervision_termination_date + relativedelta(months=SUPERVISION_PERIOD_PROXIMITY_MONTH_LIMIT + 1), admission_reason=StateIncarcerationPeriodAdmissionReason. RETURN_FROM_SUPERVISION, specialized_purpose_for_incarceration= StateSpecializedPurposeForIncarceration.GENERAL, ) supervision_periods = [supervision_period] ( admission_is_revocation, revoked_periods, ) = state_calculation_config_manager.revoked_supervision_periods_if_revocation_occurred( incarceration_period.state_code, incarceration_period, supervision_periods, None, ) self.assertTrue(admission_is_revocation) self.assertEqual([], revoked_periods)
def test_revoked_supervision_periods_if_revocation_occurred_with_treatment_US_ID( self): incarceration_period = StateIncarcerationPeriod.new_with_defaults( incarceration_period_id=222, external_id='ip2', state_code='US_ID', incarceration_type=StateIncarcerationType.STATE_PRISON, status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY, admission_date=date(2017, 5, 17), admission_reason=AdmissionReason.RETURN_FROM_SUPERVISION, release_date=date(2019, 5, 29), release_reason=ReleaseReason.SENTENCE_SERVED, specialized_purpose_for_incarceration= StateSpecializedPurposeForIncarceration.TREATMENT_IN_PRISON) supervision_periods = [] admission_is_revocation, revoked_periods = \ state_calculation_config_manager.revoked_supervision_periods_if_revocation_occurred( incarceration_period, supervision_periods, None ) self.assertTrue(admission_is_revocation) self.assertEqual([], revoked_periods)