def test_missing_column_id(self): config = ReportConfiguration( domain='somedomain', config_id='someconfig', aggregation_columns=['doc_id'], columns=[{ 'type': 'percent', # 'column_id': 'pct', 'numerator': { "aggregation": "sum", "field": "pct_numerator", "type": "field", "column_id": "pct_numerator", }, 'denominator': { "aggregation": "sum", "field": "pct_denominator", "type": "field", }, }], filters=[], configured_charts=[] ) with self.assertRaises(BadSpecError): config.validate()
def create_report(self): """ Creates data source and report config. """ matching_data_source = self.ds_builder.get_existing_match() if matching_data_source: data_source_config_id = matching_data_source['id'] else: data_source_config_id = self._build_data_source() report = ReportConfiguration( domain=self.domain, config_id=data_source_config_id, title=self.report_name, aggregation_columns=self._report_aggregation_cols, columns=self._report_columns, filters=self._report_filters, configured_charts=self._report_charts, report_meta=ReportMeta( created_by_builder=True, builder_report_type=self.report_type ) ) report.validate() report.save() return report
def test_missing_column_id(self): config = ReportConfiguration( domain='somedomain', config_id='someconfig', aggregation_columns=['doc_id'], columns=[{ 'type': 'percent', # 'column_id': 'pct', 'numerator': { "aggregation": "sum", "field": "pct_numerator", "type": "field", "column_id": "pct_numerator", }, 'denominator': { "aggregation": "sum", "field": "pct_denominator", "type": "field", }, }], filters=[], configured_charts=[] ) with self.assertRaises(BadSpecError): config.validate()
def create_report(self): """ Creates data source and report config. """ matching_data_source = self.ds_builder.get_existing_match() if matching_data_source: data_source_config_id = matching_data_source['id'] else: data_source_config = DataSourceConfiguration( domain=self.domain, display_name=self.ds_builder.data_source_name, referenced_doc_type=self.ds_builder.source_doc_type, # The uuid gets truncated, so it's not really universally unique. table_id=_clean_table_name(self.domain, str(uuid.uuid4().hex)), configured_filter=self.ds_builder.filter, configured_indicators=self.ds_builder.indicators, meta=DataSourceMeta(build=DataSourceBuildInformation( source_id=self.report_source_id, app_id=self.app._id, app_version=self.app.version, )) ) data_source_config.validate() data_source_config.save() tasks.rebuild_indicators.delay(data_source_config._id) data_source_config_id = data_source_config._id report = ReportConfiguration( domain=self.domain, config_id=data_source_config_id, title=self.report_name, aggregation_columns=self._report_aggregation_cols, columns=self._report_columns, filters=self._report_filters, configured_charts=self._report_charts, report_meta=ReportMeta( created_by_builder=True, builder_report_type=self.report_type ) ) report.validate() report.save() return report
def create_report(self): """ Creates data source and report config. """ matching_data_source = self.ds_builder.get_existing_match() if matching_data_source: data_source_config_id = matching_data_source._id reactivated = False if matching_data_source.is_deactivated: matching_data_source.is_deactivated = False reactivated = True changed = False indicators = self.ds_builder.indicators(self._number_columns) if matching_data_source.configured_indicators != indicators: matching_data_source.configured_indicators = indicators changed = True if changed or reactivated: matching_data_source.save() tasks.rebuild_indicators.delay(matching_data_source._id) else: data_source_config_id = self._build_data_source() report = ReportConfiguration( domain=self.domain, config_id=data_source_config_id, title=self.report_name, aggregation_columns=self._report_aggregation_cols, columns=self._report_columns, filters=self._report_filters, configured_charts=self._report_charts, report_meta=ReportMeta( created_by_builder=True, builder_report_type=self.report_type ) ) report.validate() report.save() return report
def create_report(self): """ Creates data source and report config. """ matching_data_source = self.ds_builder.get_existing_match() if matching_data_source: data_source_config_id = matching_data_source['id'] else: data_source_config_id = self._build_data_source() report = ReportConfiguration( domain=self.domain, config_id=data_source_config_id, title=self.report_name, aggregation_columns=self._report_aggregation_cols, columns=self._report_columns, filters=self._report_filters, configured_charts=self._report_charts, report_meta=ReportMeta(created_by_builder=True, builder_report_type=self.report_type)) report.validate() report.save() return report