test_group_attributes_dataset.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from sentry_kafka_schemas.schema_types.group_attributes_v1 import GroupAttributesSnapshot
  2. from snuba_sdk.legacy import json_to_snql
  3. from sentry.issues.attributes import (
  4. _bulk_retrieve_snapshot_values,
  5. _retrieve_group_values,
  6. produce_snapshot_to_kafka,
  7. )
  8. from sentry.testutils.cases import SnubaTestCase, TestCase
  9. from sentry.utils.snuba import raw_snql_query
  10. class DatasetTest(SnubaTestCase, TestCase):
  11. def _send(self, snapshot: GroupAttributesSnapshot) -> None:
  12. produce_snapshot_to_kafka(snapshot)
  13. def test_query_dataset_returns_empty(self) -> None:
  14. json_body = {
  15. "selected_columns": ["project_id", "group_id"],
  16. "offset": 0,
  17. "limit": 100,
  18. "project": [1],
  19. "dataset": "group_attributes",
  20. "conditions": [
  21. ["project_id", "IN", [2]],
  22. ],
  23. "consistent": False,
  24. "tenant_ids": {"referrer": "group_attributes", "organization_id": 1},
  25. }
  26. request = json_to_snql(json_body, "group_attributes")
  27. request.validate()
  28. result = raw_snql_query(request)
  29. assert len(result["data"]) == 0
  30. def test_insert_then_query(self) -> None:
  31. project = self.create_project()
  32. group = self.create_group(project=project)
  33. snapshot = _bulk_retrieve_snapshot_values([_retrieve_group_values(group.id)], False)
  34. self._send(snapshot[0])
  35. json_body = {
  36. "selected_columns": ["project_id", "group_id"],
  37. "offset": 0,
  38. "limit": 100,
  39. "project": [project.id],
  40. "dataset": "group_attributes",
  41. "conditions": [
  42. ["project_id", "IN", [project.id]],
  43. ],
  44. "consistent": False,
  45. "tenant_ids": {
  46. "referrer": "group_attributes",
  47. "organization_id": project.organization.id,
  48. },
  49. }
  50. request = json_to_snql(json_body, "group_attributes")
  51. request.validate()
  52. result = raw_snql_query(request)
  53. assert len(result["data"]) == 1