def test_for_report_id_conflicts(self): counts = Counter(rc.get_id for rc in StaticReportConfiguration.all()) duplicates = [k for k, v in counts.items() if v > 1] msg = "The following report configs have duplicate generated report_ids:\n{}".format( "\n".join("report_id: {}".format(report_id) for report_id in duplicates)) self.assertEqual(0, len(duplicates), msg)
def test_for_report_id_conflicts(self): counts = Counter(rc.get_id for rc in StaticReportConfiguration.all()) duplicates = [k for k, v in counts.items() if v > 1] msg = "The following report configs have duplicate generated report_ids:\n{}".format( "\n".join("report_id: {}".format(report_id) for report_id in duplicates) ) self.assertEqual(0, len(duplicates), msg)
def test_get_all(self): with override_settings(STATIC_UCR_REPORTS=[self.get_path('static_report_config', 'json')]): all = list(StaticReportConfiguration.all()) self.assertEqual(2, len(all)) example, dimagi = all self.assertEqual('example', example.domain) self.assertEqual('dimagi', dimagi.domain) for config in all: self.assertEqual('Custom Title', config.title)
def test_get_all_yaml(self): with patch("corehq.apps.userreports.models.static_ucr_report_paths", return_value=[]), \ override_settings(STATIC_UCR_REPORTS=[self.get_path('static_report_config', 'yml')]): all = list(StaticReportConfiguration.all()) self.assertEqual(2, len(all)) example, dimagi = all self.assertEqual('example', example.domain) self.assertEqual('dimagi', dimagi.domain) for config in all: self.assertEqual('Custom Title', config.title)
def test_data_sources_actually_exist(self): data_sources_on_domain = defaultdict(set) for data_source in StaticDataSourceConfiguration.all(): data_sources_on_domain[data_source.domain].add(data_source.get_id) def has_no_data_source(report_config): available_data_sources = data_sources_on_domain[report_config.domain] return report_config.config_id not in available_data_sources all_configs = StaticReportConfiguration.all() configs_missing_data_source = list(filter(has_no_data_source, all_configs)) msg = ("There are {} report configs which reference data sources that " "don't exist (or which don't exist on that domain):\n{}".format( len(configs_missing_data_source), "\n".join(config.get_id for config in configs_missing_data_source))) self.assertEqual(0, len(configs_missing_data_source), msg)
def handle(self, **options): config_ids = get_doc_ids_by_class(ReportConfiguration) builder_count, ucr_count = 0, 0 for doc in iter_docs(ReportConfiguration.get_db(), config_ids): if doc['report_meta']['created_by_builder']: builder_count += 1 else: ucr_count += 1 static_count = len(list(StaticReportConfiguration.all())) total_count = builder_count + ucr_count + static_count print(textwrap.dedent(""" As of {}, on {} there are {} total UCRs: {} Report Builder Reports {} UCR Report Configs {} Static Report Configs enabled for the environment """.format(datetime.utcnow().date(), settings.SERVER_ENVIRONMENT, total_count, builder_count, ucr_count, static_count)))
def test_data_sources_actually_exist(self): data_sources_on_domain = defaultdict(set) for data_source in StaticDataSourceConfiguration.all(): data_sources_on_domain[data_source.domain].add(data_source.get_id) def has_no_data_source(report_config): available_data_sources = data_sources_on_domain[ report_config.domain] return report_config.config_id not in available_data_sources all_configs = StaticReportConfiguration.all() configs_missing_data_source = list( filter(has_no_data_source, all_configs)) msg = ("There are {} report configs which reference data sources that " "don't exist (or which don't exist on that domain):\n{}".format( len(configs_missing_data_source), "\n".join(config.get_id for config in configs_missing_data_source))) self.assertEqual(0, len(configs_missing_data_source), msg)
def handle(self, **options): config_ids = get_doc_ids_by_class(ReportConfiguration) builder_count, ucr_count = 0, 0 for doc in iter_docs(ReportConfiguration.get_db(), config_ids): if doc['report_meta']['created_by_builder']: builder_count += 1 else: ucr_count += 1 static_count = len(list(StaticReportConfiguration.all())) total_count = builder_count + ucr_count + static_count print( textwrap.dedent(""" As of {}, on {} there are {} total UCRs: {} Report Builder Reports {} UCR Report Configs {} Static Report Configs enabled for the environment """.format(datetime.utcnow().date(), settings.SERVER_ENVIRONMENT, total_count, builder_count, ucr_count, static_count)))
def test_production_config(self): for report_config in StaticReportConfiguration.all(): report_config.validate()
def test_production_config(self): for data_source in StaticReportConfiguration.all(): data_source.validate()
def test_production_config(self): for data_source in StaticReportConfiguration.all( ignore_server_environment=True): data_source.validate()