def test_influx_db_query_when_get_multiple_events_for_feature_then_query_api_called( monkeypatch, ): query = ( f'from(bucket:"{read_bucket}") ' "|> range(start: -30d, stop: now()) " '|> filter(fn:(r) => r._measurement == "feature_evaluation") ' '|> filter(fn: (r) => r["_field"] == "request_count") ' f'|> filter(fn: (r) => r["environment_id"] == "{env_id}") ' f'|> filter(fn: (r) => r["feature_id"] == "{feature_name}") ' '|> drop(columns: ["organisation", "organisation_id", "type", "project", "project_id"])' "|> aggregateWindow(every: 30d, fn: sum, createEmpty: false) " '|> yield(name: "sum")') mock_influxdb_client = mock.MagicMock() monkeypatch.setattr(app_analytics.influxdb_wrapper, "influxdb_client", mock_influxdb_client) mock_query_api = mock.MagicMock() mock_influxdb_client.query_api.return_value = mock_query_api # When assert get_multiple_event_list_for_feature(env_id, feature_name) == [] # Then mock_query_api.query.assert_called_once_with(org=influx_org, query=query)
def get_influx_data(self, request, pk, project_pk): serializer = self.get_serializer(data={ "events_list": get_multiple_event_list_for_feature(pk, project_pk) }) serializer.is_valid(raise_exception=True) return Response(serializer.data)
def get_influx_data(self, request, pk, project_pk): feature = get_object_or_404(Feature, pk=pk) query_serializer = GetInfluxDataQuerySerializer( data=request.query_params) query_serializer.is_valid(raise_exception=True) events_list = get_multiple_event_list_for_feature( feature_name=feature.name, **query_serializer.data) serializer = FeatureInfluxDataSerializer( instance={"events_list": events_list}) return Response(serializer.data)