def test_parse_does_not_return_internal_unknown_for_tak026_incarceration_in_statuses(
        self, ) -> None:
        """Loops over a file with every single combination of TAK026 incarceration in statuses (*0I*) that are present
        on cycles that started after 2000 and ensures we have a mapping for those statuses.
        """
        fixture_path = direct_ingest_fixture_path(
            region_code=self.region_code,
            file_name="tak026_incarceration_admission_status_combos.txt",
        )
        with open(fixture_path, "r") as f:
            while True:
                status_list_str = f.readline().strip()
                if not status_list_str:
                    break

                admission_reason = incarceration_period_admission_reason_mapper(
                    status_list_str)
                self.assertIsNotNone(admission_reason)
                self.assertIsInstance(admission_reason,
                                      StateIncarcerationPeriodAdmissionReason)
                self.assertNotEqual(
                    admission_reason,
                    StateIncarcerationPeriodAdmissionReason.INTERNAL_UNKNOWN,
                    f"No mapping for [{status_list_str}]",
                )
Esempio n. 2
0
    def test_supervision_termination_reason_mapper(self) -> None:
        fixture_path = direct_ingest_fixture_path(
            region_code=self.region_code,
            file_name="supervision_termination_reason_raw_text.csv",
        )
        enum_overrides = UsIdController.generate_enum_overrides()

        actual_mappings = set()
        with open(fixture_path, "r") as f:
            while True:
                raw_text_value = f.readline().strip()
                if not raw_text_value:
                    break
                mapping = StateSupervisionPeriodTerminationReason.parse(
                    raw_text_value, enum_overrides)
                actual_mappings.add(mapping)

        expected_mappings = {
            StateSupervisionPeriodTerminationReason.ABSCONSION,
            StateSupervisionPeriodTerminationReason.COMMUTED,
            StateSupervisionPeriodTerminationReason.DEATH,
            StateSupervisionPeriodTerminationReason.DISCHARGE,
            StateSupervisionPeriodTerminationReason.EXPIRATION,
            StateSupervisionPeriodTerminationReason.PARDONED,
            StateSupervisionPeriodTerminationReason.RETURN_FROM_ABSCONSION,
            StateSupervisionPeriodTerminationReason.RETURN_TO_INCARCERATION,
            StateSupervisionPeriodTerminationReason.TRANSFER_OUT_OF_STATE,
            StateSupervisionPeriodTerminationReason.TRANSFER_WITHIN_STATE,
        }

        self.assertEqual(actual_mappings, expected_mappings)
 def test_supervision_level_parsing(self) -> None:
     enum_overrides = UsPaController.generate_enum_overrides()
     fixture_path = direct_ingest_fixture_path(
         region_code=self.region_code, file_name="supervision_level_raw_text.csv"
     )
     with open(fixture_path, "r") as f:
         while True:
             supervision_level_str = f.readline().strip()
             if not supervision_level_str:
                 break
             _ = StateSupervisionLevel.parse(supervision_level_str, enum_overrides)
 def test_incarceration_period_purpose_mapper(self) -> None:
     fixture_path = direct_ingest_fixture_path(
         region_code=self.region_code, file_name="purpose_raw_text.csv"
     )
     with open(fixture_path, "r") as f:
         while True:
             purpose_str = f.readline().strip()
             if not purpose_str:
                 break
             mapping = incarceration_period_purpose_mapper(purpose_str)
             self.assertIsNotNone(mapping)
             self.assertIsInstance(mapping, StateSpecializedPurposeForIncarceration)
 def test_incarceration_period_release_reason_mapper(self) -> None:
     fixture_path = direct_ingest_fixture_path(
         region_code=self.region_code, file_name="release_reason_raw_text.csv"
     )
     with open(fixture_path, "r") as f:
         while True:
             release_reason_str = f.readline().strip()
             if not release_reason_str:
                 break
             mapping = incarceration_period_release_reason_mapper(release_reason_str)
             self.assertIsNotNone(mapping)
             self.assertIsInstance(mapping, StateIncarcerationPeriodReleaseReason)
 def test_supervision_contact_typ_mapper(self) -> None:
     fixture_path = direct_ingest_fixture_path(
         region_code=self.region_code,
         file_name="supervision_contacts_type_raw_text.csv",
     )
     with open(fixture_path, "r") as f:
         while True:
             supervision_contact_type_str = f.readline().strip()
             if not supervision_contact_type_str:
                 break
             mapping = supervision_contact_type_mapper(supervision_contact_type_str)
             self.assertIsNotNone(mapping)
             self.assertIsInstance(mapping, StateSupervisionContactType)
 def test_parse_incarceration_period_release_reasons(self, ) -> None:
     """Loops over a file with every single combination of release reason raw texts
     that are present and ensures they all parse."""
     enum_overrides = UsMoController.generate_enum_overrides()
     fixture_path = direct_ingest_fixture_path(
         region_code=self.region_code,
         file_name="incarceration_period_release_reason_raw_text.csv",
     )
     with open(fixture_path, "r") as f:
         while True:
             release_reason_str = f.readline().strip()
             if not release_reason_str:
                 break
             release_reason = StateIncarcerationPeriodReleaseReason.parse(
                 release_reason_str, enum_overrides)
             self.assertIsNotNone(release_reason)
             self.assertIsInstance(release_reason,
                                   StateIncarcerationPeriodReleaseReason)