Exemple #1
0
 def build(self) -> DirectIngestPreProcessedIngestView:
     """Builds an instance of a DirectIngestPreProcessedIngestView with the provided args."""
     return DirectIngestPreProcessedIngestView(
         ingest_view_name=self.ingest_view_name,
         view_query_template=self.view_query_template,
         region_raw_table_config=get_region_raw_file_config(self.region),
         order_by_cols=self.order_by_cols)
    def run_test(
        self,
        external_ids: List[PersonExternalIds],
        movrecs: List[Movrec],
        senrecs: List[Senrec],
        expected_output: List[List[Any]],
    ) -> None:
        """Runs a test that executes the person_external_ids query given the provided
        input rows.
        """
        run_time = datetime.datetime.now()
        file_upload_time = run_time - datetime.timedelta(days=1)

        # Arrange
        raw_file_configs = get_region_raw_file_config(STATE_CODE).raw_file_configs

        create_id_tables_from_external_ids(
            self,
            external_ids,
            raw_file_configs,
            file_upload_time,
        )

        self.create_mock_raw_file(
            STATE_CODE,
            raw_file_configs["dbo_Movrec"],
            [attr.astuple(movrec) for movrec in movrecs],
            update_datetime=file_upload_time,
        )

        self.create_mock_raw_file(
            STATE_CODE,
            raw_file_configs["dbo_Senrec"],
            [attr.astuple(senrec) for senrec in senrecs],
            update_datetime=file_upload_time,
        )

        # Act
        results = self.query_raw_data_view_for_builder(
            self.view_builder,
            dimensions=self.expected_result_columns,
            query_run_dt=run_time,
        )

        # Assert
        expected = pd.DataFrame(expected_output, columns=self.expected_result_columns)
        expected = expected.set_index(self.expected_result_columns)
        print(expected)
        print(results)
        assert_frame_equal(expected, results)
Exemple #3
0
 def build(
     self,
     *,
     dataset_overrides: Optional[Dict[str, str]] = None
 ) -> DirectIngestPreProcessedIngestView:
     """Builds an instance of a DirectIngestPreProcessedIngestView with the provided args."""
     return DirectIngestPreProcessedIngestView(
         ingest_view_name=self.ingest_view_name,
         view_query_template=self.view_query_template,
         region_raw_table_config=get_region_raw_file_config(self.region),
         order_by_cols=self.order_by_cols,
         is_detect_row_deletion_view=self.is_detect_row_deletion_view,
         primary_key_tables_for_entity_deletion=self.
         primary_key_tables_for_entity_deletion,
         materialize_raw_data_table_views=self.
         materialize_raw_data_table_views)
    def run_test(
        self,
        dbo_parole_count_ids: List[ParoleCountIds],
        dbo_tbl_search_inmate_info_ids: List[TblSearchInmateInfoIds],
        recidiviz_reference_linking_ids: List[RecidivizReferenceLinkingIds],
        expected_output: List[List[Any]],
    ) -> None:
        """Runs a test that executes the person_external_ids query given the provided
        input rows.
        """
        run_time = datetime.datetime.now()
        file_upload_time = run_time - datetime.timedelta(days=1)

        # Arrange
        raw_file_configs = get_region_raw_file_config(
            STATE_CODE).raw_file_configs

        create_id_tables(
            self,
            dbo_parole_count_ids,
            dbo_tbl_search_inmate_info_ids,
            recidiviz_reference_linking_ids,
            raw_file_configs,
            file_upload_time,
        )

        # Act
        results = self.query_raw_data_view_for_builder(
            self.view_builder,
            dimensions=self.expected_result_columns,
            query_run_dt=run_time,
        )

        # Assert
        expected = pd.DataFrame(expected_output,
                                columns=self.expected_result_columns)
        expected = expected.set_index(self.expected_result_columns)
        print(expected)
        print(results)
        assert_frame_equal(expected, results)
    def test_template_periods_incarceration_only_movement(self) -> None:
        # Arrange
        raw_file_configs = get_region_raw_file_config("us_id").raw_file_configs

        self.create_mock_raw_file("us_id", raw_file_configs["casemgr"], [])
        self.create_mock_raw_file("us_id", raw_file_configs["employee"], [])
        self.create_mock_raw_file("us_id", raw_file_configs["facility"], [])
        self.create_mock_raw_file("us_id", raw_file_configs["location"], [])
        self.create_mock_raw_file("us_id", raw_file_configs["lvgunit"], [])
        self.create_mock_raw_file("us_id", raw_file_configs["mittimus"], [])
        self.create_mock_raw_file(
            "us_id",
            raw_file_configs["movement"],
            [
                (
                    "10000001",
                    "11111",
                    "1",
                    "2020-01-01 8:00:00",
                    "I",
                    "1",
                    "",
                    "001",
                    "00",
                    "1",
                    "1",
                    "A",
                    None,
                    None,
                )
            ],
        )
        self.create_mock_raw_file("us_id", raw_file_configs["offstat"], [])
        self.create_mock_raw_file("us_id", raw_file_configs["ofndr_loc_hist"], [])
        self.create_mock_raw_file("us_id", raw_file_configs["ofndr_wrkld"], [])
        self.create_mock_raw_file("us_id", raw_file_configs["wrkld_cat"], [])

        # Act
        dimensions = ["docno", "incrno", "start_date", "end_date"]
        results = self.query_raw_data_view_for_builder(
            DirectIngestPreProcessedIngestViewBuilder(
                region="us_id",
                ingest_view_name="incarceration_periods",
                view_query_template=f"""
            WITH {get_all_periods_query_fragment(period_type=PeriodType.INCARCERATION)}
            SELECT * FROM periods_with_previous_and_next_info
            """,
                order_by_cols="docno, incrno, start_date, end_date",
            ),
            dimensions=dimensions,
        )

        # Assert
        expected = pd.DataFrame(
            [
                [
                    "11111",
                    "1",
                    date(2020, 1, 1),
                    date(9999, 12, 31),
                    None,
                    None,
                    None,
                    "1",
                ]
                + [None] * 6
                + ["10000001"]
                + [None] * 9
            ],
            columns=dimensions
            + [
                "prev_fac_typ",
                "prev_fac_cd",
                "prev_loc_ldesc",
                "fac_cd",
                "fac_typ",
                "fac_ldesc",
                "loc_cd",
                "loc_ldesc",
                "lu_cd",
                "lu_ldesc",
                "move_srl",
                "statuses",
                "wrkld_cat_title",
                "empl_cd",
                "empl_sdesc",
                "empl_ldesc",
                "empl_title",
                "next_fac_typ",
                "next_fac_cd",
                "next_loc_ldesc",
            ],
        )
        expected = expected.set_index(dimensions)
        assert_frame_equal(expected, results)