def analysis_mock_run(self, monkeypatch, config, static_dataset, temporary_dataset, project_id, log_config=None): orig_enrollments = mozanalysis.experiment.Experiment.build_enrollments_query orig_metrics = mozanalysis.experiment.Experiment.build_metrics_query def build_enrollments_query_test_project(instance, *args, **kwargs): # to use the test project and dataset, we need to change the SQL query # generated by mozanalysis query = orig_enrollments(instance, *args) query = query.replace("moz-fx-data-shared-prod", project_id) query = query.replace("telemetry", static_dataset) return query def build_metrics_query_test_project(instance, *args, **kwargs): # to use the test project and dataset, we need to change the SQL query # generated by mozanalysis query = orig_metrics(instance, *args) query = query.replace("moz-fx-data-shared-prod", project_id) query = query.replace("telemetry", static_dataset) return query orig_cluster = dask.distributed.LocalCluster.__init__ def mock_local_cluster(instance, dashboard_address, processes, threads_per_worker, *args, **kwargs): # if processes are used then `build_query_test_project` gets ignored return orig_cluster( instance, dashboard_address=dashboard_address, processes=False, threads_per_worker=threads_per_worker, ) analysis = Analysis(project_id, temporary_dataset, config, log_config) monkeypatch.setattr( mozanalysis.experiment.Experiment, "build_enrollments_query", build_enrollments_query_test_project, ) monkeypatch.setattr( mozanalysis.experiment.Experiment, "build_metrics_query", build_metrics_query_test_project, ) monkeypatch.setattr(dask.distributed.LocalCluster, "__init__", mock_local_cluster) analysis.ensure_enrollments(dt.datetime(2020, 4, 12, tzinfo=pytz.utc)) analysis.run(dt.datetime(2020, 4, 12, tzinfo=pytz.utc), dry_run=False)
def analysis_mock_run(self, config, static_dataset, temporary_dataset, project_id): orig = mozanalysis.experiment.Experiment.build_query def build_query_test_project(instance, *args, **kwargs): # to use the test project and dataset, we need to change the SQL query # generated by mozanalysis query = orig(instance, *args) query = query.replace("moz-fx-data-shared-prod", project_id) query = query.replace("telemetry", static_dataset) return query analysis = Analysis(project_id, temporary_dataset, config) with mock.patch.object(mozanalysis.experiment.Experiment, "build_query", new=build_query_test_project): analysis.run(current_date=dt.datetime(2020, 4, 12, tzinfo=pytz.utc), dry_run=False)