def _format_and_store_queries_in_s3(self, resolved_bundle_uuids: list, genus_species: str): feature_query = feature_query_template.format( self.query_results_bucket, self.request_id, self.redshift_role_arn, genus_species) feature_query_obj_key = self.s3_handler.store_content_in_s3( f"{self.request_id}/feature", feature_query) exp_query = expression_query_template.format( self.query_results_bucket, self.request_id, self.redshift_role_arn, format_str_list(resolved_bundle_uuids), genus_species) exp_query_obj_key = self.s3_handler.store_content_in_s3( f"{self.request_id}/expression", exp_query) cell_query = cell_query_template.format( self.query_results_bucket, self.request_id, self.redshift_role_arn, format_str_list(resolved_bundle_uuids), genus_species) cell_query_obj_key = self.s3_handler.store_content_in_s3( f"{self.request_id}/cell", cell_query) return { QueryType.CELL: cell_query_obj_key, QueryType.EXPRESSION: exp_query_obj_key, QueryType.FEATURE: feature_query_obj_key }
def test_dss_notification(self): bundle_data = NOTIFICATION_TEST_DATA[self.dss_env] bundle_fqid = bundle_data['bundle_fqid'] cell_row_count = bundle_data['cell_count'] expression_row_count = bundle_data['exp_count'] cellkeys = format_str_list(self._get_cellkeys_from_fqid(bundle_fqid)) self.assertTrue(len(cellkeys) > 0) try: self._post_notification(bundle_fqid=bundle_fqid, event_type="DELETE") WaitFor(self._poll_db_get_row_counts_for_fqid, bundle_fqid, cellkeys)\ .to_return_value((0, 0, 0), timeout_seconds=60) self._post_notification(bundle_fqid=bundle_fqid, event_type="CREATE") WaitFor(self._poll_db_get_row_counts_for_fqid, bundle_fqid, cellkeys)\ .to_return_value((1, cell_row_count, expression_row_count), timeout_seconds=600) self._post_notification(bundle_fqid=bundle_fqid, event_type="TOMBSTONE") WaitFor(self._poll_db_get_row_counts_for_fqid, bundle_fqid, cellkeys)\ .to_return_value((0, 0, 0), timeout_seconds=60) self._post_notification(bundle_fqid=bundle_fqid, event_type="UPDATE") WaitFor(self._poll_db_get_row_counts_for_fqid, bundle_fqid, cellkeys)\ .to_return_value((1, cell_row_count, expression_row_count), timeout_seconds=600) finally: self._post_notification(bundle_fqid=bundle_fqid, event_type="CREATE")
def test_single_value(self): values = ["id1.version"] formatted_values = "('id1.version')" self.assertEqual(query_constructor.format_str_list(values), formatted_values)
def _format_and_store_queries_in_s3(self, resolved_bundle_fqids: list): feature_query = feature_query_template.format( self.query_results_bucket, self.request_id, self.redshift_role_arn) feature_query_obj_key = self.s3_handler.store_content_in_s3( f"{self.request_id}/feature", feature_query) exp_query = expression_query_template.format( self.query_results_bucket, self.request_id, self.redshift_role_arn, format_str_list(resolved_bundle_fqids)) exp_query_obj_key = self.s3_handler.store_content_in_s3( f"{self.request_id}/expression", exp_query) cell_query = cell_query_template.format( self.query_results_bucket, self.request_id, self.redshift_role_arn, format_str_list(resolved_bundle_fqids)) cell_query_obj_key = self.s3_handler.store_content_in_s3( f"{self.request_id}/cell", cell_query) return [feature_query_obj_key, exp_query_obj_key, cell_query_obj_key]
def _fetch_bundle_count_from_analysis_table(self, resolved_bundle_fqids: list): analysis_table_bundle_count_query = analysis_bundle_count_query_template.format( format_str_list(resolved_bundle_fqids)) analysis_table_bundle_count_query = analysis_table_bundle_count_query.strip( ).replace('\n', '') results = self.redshift_handler.transaction( [analysis_table_bundle_count_query], read_only=True, return_results=True) analysis_table_bundle_count = results[0][0] return analysis_table_bundle_count