def test_unlink_ucr_returns_none_if_not_linked(self): report = ReportConfiguration() report.domain = self.domain report.report_meta = ReportMeta() unlinked_report = unlink_report(report) self.assertIsNone(unlinked_report)
def test_unlink_ucr_returns_unlinked_report(self): report = ReportConfiguration() report.domain = self.domain report.report_meta = ReportMeta(master_id='abc123') unlinked_report = unlink_report(report) self.assertIsNone(unlinked_report.report_meta.master_id)
def test_unlink_ucr_returns_none_if_not_linked(self): report = ReportConfiguration() report.domain = self.domain report.config_id = '123abd' report.report_meta = ReportMeta() report.save() self.addCleanup(report.delete) unlinked_report = unlink_report(report) self.assertIsNone(unlinked_report)
def _create_report(self, master_id=None): data_source = get_sample_data_source() data_source.domain = self.domain data_source.save() self.addCleanup(data_source.delete) report = ReportConfiguration() report.config_id = data_source.get_id report.domain = self.domain report.report_meta = ReportMeta() report.report_meta.master_id = master_id report.save() self.addCleanup(report.delete) return report
def _create_report(domain, title="report", upstream_id=None, should_save=True): data_source = DataSourceConfiguration( domain=domain, table_id=uuid.uuid4().hex, referenced_doc_type='XFormInstance', ) data_source.save() report = ReportConfiguration( domain=domain, config_id=data_source._id, title=title, report_meta=ReportMeta(created_by_builder=True, master_id=upstream_id), ) if should_save: report.save() return report
def MAKE_REPORT_CONFIG(domain, report_id, columns=None): columns = columns or [ FieldColumn(type='field', aggregation="simple", column_id="color_94ec39e6", display="color", field="color_94ec39e6").to_json(), ] return ReportConfiguration( _id=report_id, title="Entry Report", aggregation_columns=["color_94ec39e6"], config_id="516c494736e95b023cc7845b557de0f5", domain=domain, report_meta=ReportMeta(builder_report_type="chart", created_by_builder=True), columns=columns, configured_charts=[ MultibarChartSpec(type='multibar', chart_id="7451243209119342931", x_axis_column="color_94ec39e6", y_axis_columns=[ GraphDisplayColumn(column_id="count", display="count") ]).to_json() ], filters=[ DynamicChoiceListFilterSpec( type='dynamic_choice_list', display="owner name", field="computed_owner_name_40cc88a0", slug="computed_owner_name_40cc88a0_1").to_json(), ChoiceListFilterSpec(type='choice_list', display="fav color", field="fav_fruit_abc123", slug="fav_fruit_abc123_1", choices=[ FilterChoice(value='a', display='apple'), FilterChoice(value='b', display='banana'), FilterChoice(value='c', display='clementine'), ]).to_json() ], )
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
existing_uuid = 'existing_uuid' self.assertEqual( existing_uuid, ReportAppConfig.wrap({ "report_id": "report_id", "uuid": existing_uuid, }).uuid) MAKE_REPORT_CONFIG = lambda domain, report_id: ReportConfiguration( _id=report_id, title="Entry Report", aggregation_columns=["color_94ec39e6"], config_id="516c494736e95b023cc7845b557de0f5", domain=domain, report_meta=ReportMeta(builder_report_type="chart", created_by_builder=True), columns=[ FieldColumn(type='field', aggregation="simple", column_id="color_94ec39e6", display="color", field="color_94ec39e6").to_json(), ], configured_charts=[ MultibarChartSpec(type='multibar', chart_id="7451243209119342931", x_axis_column="color_94ec39e6", y_axis_columns=[ GraphDisplayColumn(column_id="count", display="count") ]).to_json()
def test_report_builder_datasource_deactivation(self): def _get_data_source(id_): return get_datasource_config(id_, self.project.name)[0] # Upgrade the domain # (for the upgrade to work, there has to be an existing subscription, # which is why we subscribe to advanced first) self._subscribe_to_advanced() pro_with_rb_sub = self._subscribe_to_pro_with_rb() # Create reports and data sources builder_report_data_source = DataSourceConfiguration( domain=self.project.name, is_deactivated=False, referenced_doc_type="XFormInstance", table_id="foo", ) other_data_source = DataSourceConfiguration( domain=self.project.name, is_deactivated=False, referenced_doc_type="XFormInstance", table_id="bar", ) builder_report_data_source.save() other_data_source.save() report_builder_report = ReportConfiguration( domain=self.project.name, config_id=builder_report_data_source._id, report_meta=ReportMeta(created_by_builder=True), ) report_builder_report.save() # downgrade the domain community_sub = pro_with_rb_sub.change_plan( DefaultProductPlan.get_default_plan_version()) # Check that the builder data source is deactivated builder_report_data_source = _get_data_source( builder_report_data_source._id) self.assertTrue(builder_report_data_source.is_deactivated) # Check that the other data source has not been deactivated other_data_source = _get_data_source(other_data_source._id) self.assertFalse(other_data_source.is_deactivated) # upgrade the domain # (for the upgrade to work, there has to be an existing subscription, # which is why we subscribe to advanced first) community_sub.change_plan( DefaultProductPlan.get_default_plan_version( edition=SoftwarePlanEdition.ADVANCED)) pro_with_rb_sub = self._subscribe_to_pro_with_rb() # check that the data source is activated builder_report_data_source = _get_data_source( builder_report_data_source._id) self.assertFalse(builder_report_data_source.is_deactivated) # delete the data sources builder_report_data_source.delete() other_data_source.delete() # Delete the report report_builder_report.delete() # reset the subscription pro_with_rb_sub.change_plan( DefaultProductPlan.get_default_plan_version())