Beispiel #1
0
    def testParseStateIncarcerationPeriod_temporaryCustody_overwriteAdmission(
            self):
        # Arrange
        ingest_incarceration = ingest_info_pb2.StateIncarcerationPeriod(
            status='NOT_IN_CUSTODY',
            incarceration_type='STATE_PRISON',
            admission_reason='PAROLE_REVOCATION',
            release_reason='RELEASED_FROM_TEMPORARY_CUSTODY',
            admission_date='1/2/2111',
            release_date='2/2/2112',
            state_code='us_nd')

        # Act
        incarceration_builder = entities.StateIncarcerationPeriod.builder()
        state_incarceration_period.copy_fields_to_builder(
            incarceration_builder, ingest_incarceration, _EMPTY_METADATA)
        result = incarceration_builder.build()

        # Assert
        expected_result = entities.StateIncarcerationPeriod.new_with_defaults(
            status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY,
            status_raw_text='NOT_IN_CUSTODY',
            incarceration_type=StateIncarcerationType.STATE_PRISON,
            incarceration_type_raw_text='STATE_PRISON',
            admission_reason=StateIncarcerationPeriodAdmissionReason.
            TEMPORARY_CUSTODY,
            admission_reason_raw_text='PAROLE_REVOCATION',
            release_reason=StateIncarcerationPeriodReleaseReason.
            RELEASED_FROM_TEMPORARY_CUSTODY,
            release_reason_raw_text='RELEASED_FROM_TEMPORARY_CUSTODY',
            admission_date=date(year=2111, month=1, day=2),
            release_date=date(year=2112, month=2, day=2),
            state_code='US_ND')

        self.assertEqual(result, expected_result)
Beispiel #2
0
    def testParseStateIncarcerationPeriod(self):
        # Arrange
        ingest_incarceration = ingest_info_pb2.StateIncarcerationPeriod(
            status="NOT_IN_CUSTODY",
            incarceration_type="STATE_PRISON",
            facility_security_level="MEDIUM",
            admission_reason="PAROLE_REVOCATION",
            projected_release_reason="CONDITIONAL_RELEASE",
            release_reason="SERVED",
            state_incarceration_period_id="INCARCERATION_ID",
            specialized_purpose_for_incarceration="SHOCK INCARCERATION",
            admission_date="1/2/2111",
            release_date="2/2/2112",
            state_code="us_nd",
            county_code="bis",
            facility="The Prison",
            housing_unit="CB4",
            custodial_authority="STATE_PRISON",
        )

        # Act
        incarceration_builder = entities.StateIncarcerationPeriod.builder()
        state_incarceration_period.copy_fields_to_builder(
            incarceration_builder, ingest_incarceration, _EMPTY_METADATA)
        result = incarceration_builder.build()

        # Assert
        expected_result = entities.StateIncarcerationPeriod(
            status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY,
            status_raw_text="NOT_IN_CUSTODY",
            incarceration_type=StateIncarcerationType.STATE_PRISON,
            incarceration_type_raw_text="STATE_PRISON",
            facility_security_level=StateIncarcerationFacilitySecurityLevel.
            MEDIUM,
            facility_security_level_raw_text="MEDIUM",
            admission_reason=StateIncarcerationPeriodAdmissionReason.
            PAROLE_REVOCATION,
            admission_reason_raw_text="PAROLE_REVOCATION",
            projected_release_reason=StateIncarcerationPeriodReleaseReason.
            CONDITIONAL_RELEASE,
            projected_release_reason_raw_text="CONDITIONAL_RELEASE",
            release_reason=StateIncarcerationPeriodReleaseReason.
            SENTENCE_SERVED,
            release_reason_raw_text="SERVED",
            specialized_purpose_for_incarceration=
            StateSpecializedPurposeForIncarceration.SHOCK_INCARCERATION,
            specialized_purpose_for_incarceration_raw_text=
            "SHOCK INCARCERATION",
            external_id="INCARCERATION_ID",
            admission_date=date(year=2111, month=1, day=2),
            release_date=date(year=2112, month=2, day=2),
            state_code="US_ND",
            county_code="BIS",
            facility="THE PRISON",
            housing_unit="CB4",
            custodial_authority=StateCustodialAuthority.STATE_PRISON,
            custodial_authority_raw_text="STATE_PRISON",
        )

        self.assertEqual(result, expected_result)
Beispiel #3
0
    def testParseStateIncarcerationPeriod_inferStatus_releaseDate(self):
        # Arrange
        ingest_incarceration = ingest_info_pb2.StateIncarcerationPeriod(
            incarceration_type="STATE_PRISON",
            admission_date="1/2/2111",
            release_date="1/2/2112",
            state_code="us_nd",
        )

        # Act
        incarceration_builder = entities.StateIncarcerationPeriod.builder()
        state_incarceration_period.copy_fields_to_builder(
            incarceration_builder, ingest_incarceration, _EMPTY_METADATA)
        result = incarceration_builder.build()

        # Assert
        expected_result = entities.StateIncarcerationPeriod.new_with_defaults(
            status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY,
            incarceration_type=StateIncarcerationType.STATE_PRISON,
            incarceration_type_raw_text="STATE_PRISON",
            admission_date=date(year=2111, month=1, day=2),
            release_date=date(year=2112, month=1, day=2),
            state_code="US_ND",
        )

        self.assertEqual(result, expected_result)
Beispiel #4
0
    def testParseStateIncarcerationPeriod(self):
        # Arrange
        ingest_incarceration = ingest_info_pb2.StateIncarcerationPeriod(
            status='NOT_IN_CUSTODY',
            incarceration_type='STATE_PRISON',
            facility_security_level='MEDIUM',
            admission_reason='PAROLE_REVOCATION',
            projected_release_reason='CONDITIONAL_RELEASE',
            release_reason='SERVED',
            state_incarceration_period_id='INCARCERATION_ID',
            specialized_purpose_for_incarceration='SHOCK INCARCERATION',
            admission_date='1/2/2111',
            release_date='2/2/2112',
            state_code='us_nd',
            county_code='bis',
            facility='The Prison',
            housing_unit='CB4')

        # Act
        incarceration_builder = entities.StateIncarcerationPeriod.builder()
        state_incarceration_period.copy_fields_to_builder(
            incarceration_builder, ingest_incarceration, _EMPTY_METADATA)
        result = incarceration_builder.build()

        # Assert
        expected_result = entities.StateIncarcerationPeriod(
            status=StateIncarcerationPeriodStatus.NOT_IN_CUSTODY,
            status_raw_text='NOT_IN_CUSTODY',
            incarceration_type=StateIncarcerationType.STATE_PRISON,
            incarceration_type_raw_text='STATE_PRISON',
            facility_security_level=StateIncarcerationFacilitySecurityLevel.
            MEDIUM,
            facility_security_level_raw_text='MEDIUM',
            admission_reason=StateIncarcerationPeriodAdmissionReason.
            PAROLE_REVOCATION,
            admission_reason_raw_text='PAROLE_REVOCATION',
            projected_release_reason=StateIncarcerationPeriodReleaseReason.
            CONDITIONAL_RELEASE,
            projected_release_reason_raw_text='CONDITIONAL_RELEASE',
            release_reason=StateIncarcerationPeriodReleaseReason.
            SENTENCE_SERVED,
            release_reason_raw_text='SERVED',
            specialized_purpose_for_incarceration=
            StateSpecializedPurposeForIncarceration.SHOCK_INCARCERATION,
            specialized_purpose_for_incarceration_raw_text=
            'SHOCK INCARCERATION',
            external_id='INCARCERATION_ID',
            admission_date=date(year=2111, month=1, day=2),
            release_date=date(year=2112, month=2, day=2),
            state_code='US_ND',
            county_code='BIS',
            facility='THE PRISON',
            housing_unit='CB4',
        )

        self.assertEqual(result, expected_result)
Beispiel #5
0
    def testParseStateIncarcerationPeriod_inferStatus_noDates(self):
        # Arrange
        ingest_incarceration = ingest_info_pb2.StateIncarcerationPeriod(
            incarceration_type='STATE_PRISON', state_code='us_nd')

        # Act
        incarceration_builder = entities.StateIncarcerationPeriod.builder()
        state_incarceration_period.copy_fields_to_builder(
            incarceration_builder, ingest_incarceration, _EMPTY_METADATA)
        result = incarceration_builder.build()

        # Assert
        expected_result = entities.StateIncarcerationPeriod.new_with_defaults(
            status=StateIncarcerationPeriodStatus.PRESENT_WITHOUT_INFO,
            incarceration_type=StateIncarcerationType.STATE_PRISON,
            incarceration_type_raw_text='STATE_PRISON',
            state_code='US_ND')

        self.assertEqual(result, expected_result)