diff --git a/src/sentry/workflow_engine/handlers/detector/stateful.py b/src/sentry/workflow_engine/handlers/detector/stateful.py index 48cc3110443576..bc6da620995c14 100644 --- a/src/sentry/workflow_engine/handlers/detector/stateful.py +++ b/src/sentry/workflow_engine/handlers/detector/stateful.py @@ -10,6 +10,7 @@ from sentry_redis_tools.retrying_cluster import RetryingRedisCluster from sentry.api.serializers import serialize +from sentry.api.serializers.rest_framework.base import camel_to_snake_case, convert_dict_key_case from sentry.issues.issue_occurrence import IssueOccurrence from sentry.issues.status_change_message import StatusChangeMessage from sentry.models.group import GroupStatus @@ -370,7 +371,8 @@ def _build_evidence_data_sources( }, ) return [] - return serialize(data_sources) + # Serializers return camelcased keys, but evidence data should use snakecase + return convert_dict_key_case(serialize(data_sources), camel_to_snake_case) except Exception: logger.exception( "Failed to serialize data source definition when building workflow engine evidence data" diff --git a/tests/sentry/incidents/test_metric_issue_detector_handler.py b/tests/sentry/incidents/test_metric_issue_detector_handler.py index a5e69543a56494..98f5d5ca02123d 100644 --- a/tests/sentry/incidents/test_metric_issue_detector_handler.py +++ b/tests/sentry/incidents/test_metric_issue_detector_handler.py @@ -54,22 +54,22 @@ def generate_evidence_data( "data_sources": [ { "id": str(self.data_source.id), - "organizationId": str(self.organization.id), + "organization_id": str(self.organization.id), "type": self.data_source.type, - "sourceId": str(self.query_subscription.id), - "queryObj": { + "source_id": str(self.query_subscription.id), + "query_obj": { "id": str(self.query_subscription.id), "status": self.query_subscription.status, "subscription": self.query_subscription.subscription_id, - "snubaQuery": { + "snuba_query": { "id": str(self.snuba_query.id), "dataset": self.snuba_query.dataset, "query": self.snuba_query.query, "aggregate": self.snuba_query.aggregate, - "timeWindow": self.snuba_query.time_window, + "time_window": self.snuba_query.time_window, "environment": self.environment.name, - "eventTypes": ["error"], - "extrapolationMode": "unknown", + "event_types": ["error"], + "extrapolation_mode": "unknown", }, }, }