Browse Source

test: Do not use Event model in unmerge tests (#16147)

This model will be removed
Lyn Nagara 5 years ago
parent
commit
3eff4fc391
1 changed files with 80 additions and 63 deletions
  1. 80 63
      tests/snuba/tasks/test_unmerge.py

+ 80 - 63
tests/snuba/tasks/test_unmerge.py

@@ -10,10 +10,11 @@ from datetime import datetime, timedelta
 import pytz
 
 from mock import patch
+from django.utils import timezone
 
 from sentry import eventstream, tagstore
 from sentry.app import tsdb
-from sentry.models import Environment, Event, Group, GroupHash, GroupRelease, Release, UserReport
+from sentry.models import Environment, Group, GroupHash, GroupRelease, Release, UserReport
 from sentry.similarity import features, _make_index_backend
 from sentry.tasks.unmerge import (
     get_caches,
@@ -35,60 +36,69 @@ from six.moves import xrange
 index = _make_index_backend(redis.clusters.get("default").get_local_client(0))
 
 
-def test_get_fingerprint():
-    assert (
-        get_fingerprint(Event(data={"logentry": {"message": "Hello world"}}))
-        == hashlib.md5("Hello world").hexdigest()
-    )
-
-    assert (
-        get_fingerprint(
-            Event(data={"fingerprint": ["Not hello world"], "logentry": {"message": "Hello world"}})
+@patch("sentry.similarity.features.index", new=index)
+class UnmergeTestCase(TestCase, SnubaTestCase):
+    def test_get_fingerprint(self):
+        assert (
+            get_fingerprint(
+                self.store_event(data={"message": "Hello world"}, project_id=self.project.id)
+            )
+            == hashlib.md5("Hello world").hexdigest()
         )
-        == hashlib.md5("Not hello world").hexdigest()
-    )
 
+        assert (
+            get_fingerprint(
+                self.store_event(
+                    data={"message": "Hello world", "fingerprint": ["Not hello world"]},
+                    project_id=self.project.id,
+                )
+            )
+            == hashlib.md5("Not hello world").hexdigest()
+        )
 
-@patch("sentry.similarity.features.index", new=index)
-class UnmergeTestCase(TestCase, SnubaTestCase):
     def test_get_group_creation_attributes(self):
-        now = datetime(2017, 5, 3, 6, 6, 6, tzinfo=pytz.utc)
-        events = [
-            Event(
-                platform="javascript",
-                message="Hello from JavaScript",
-                datetime=now,
-                data={
-                    "type": "default",
-                    "metadata": {},
-                    "tags": [["level", "info"], ["logger", "javascript"]],
-                },
-            ),
-            Event(
-                platform="python",
-                message="Hello from Python",
-                datetime=now - timedelta(hours=1),
-                data={
-                    "type": "default",
-                    "metadata": {},
-                    "tags": [["level", "error"], ["logger", "python"]],
-                },
-            ),
-            Event(
-                platform="java",
-                message="Hello from Java",
-                datetime=now - timedelta(hours=2),
-                data={
-                    "type": "default",
-                    "metadata": {},
-                    "tags": [["level", "debug"], ["logger", "java"]],
-                },
-            ),
-        ]
+        now = datetime.utcnow().replace(microsecond=0, tzinfo=timezone.utc)
+        e1 = self.store_event(
+            data={
+                "fingerprint": ["group1"],
+                "platform": "javascript",
+                "message": "Hello from JavaScript",
+                "type": "default",
+                "level": "info",
+                "tags": {"logger": "javascript"},
+                "timestamp": iso_format(now),
+            },
+            project_id=self.project.id,
+        )
+        e2 = self.store_event(
+            data={
+                "fingerprint": ["group1"],
+                "platform": "python",
+                "message": "Hello from Python",
+                "type": "default",
+                "level": "error",
+                "tags": {"logger": "python"},
+                "timestamp": iso_format(now),
+            },
+            project_id=self.project.id,
+        )
+        e3 = self.store_event(
+            data={
+                "fingerprint": ["group1"],
+                "platform": "java",
+                "message": "Hello from Java",
+                "type": "default",
+                "level": "debug",
+                "tags": {"logger": "java"},
+                "timestamp": iso_format(now),
+            },
+            project_id=self.project.id,
+        )
+        events = [e1, e2, e3]
 
         assert get_group_creation_attributes(get_caches(), events) == {
-            "active_at": now - timedelta(hours=2),
-            "first_seen": now - timedelta(hours=2),
+            "active_at": now,
+            "first_seen": now,
             "last_seen": now,
             "platform": "java",
             "message": "Hello from JavaScript",
@@ -98,11 +108,16 @@ class UnmergeTestCase(TestCase, SnubaTestCase):
             "times_seen": 3,
             "first_release": None,
             "culprit": "",
-            "data": {"type": "default", "last_received": to_timestamp(now), "metadata": {}},
+            "data": {
+                "type": "default",
+                "last_received": e1.data["received"],
+                "metadata": {"title": "Hello from JavaScript"},
+            },
         }
 
     def test_get_group_backfill_attributes(self):
-        now = datetime(2017, 5, 3, 6, 6, 6, tzinfo=pytz.utc)
+        now = datetime.utcnow().replace(microsecond=0, tzinfo=timezone.utc)
+
         assert get_group_backfill_attributes(
             get_caches(),
             Group(
@@ -120,25 +135,27 @@ class UnmergeTestCase(TestCase, SnubaTestCase):
                 data={"type": "default", "last_received": to_timestamp(now), "metadata": {}},
             ),
             [
-                Event(
-                    platform="python",
-                    message="Hello from Python",
-                    datetime=now - timedelta(hours=1),
+                self.store_event(
                     data={
+                        "platform": "python",
+                        "message": "Hello from Python",
+                        "timestamp": iso_format(now - timedelta(hours=1)),
                         "type": "default",
-                        "metadata": {},
-                        "tags": [["level", "error"], ["logger", "python"]],
+                        "level": "debug",
+                        "tags": {"logger": "java"},
                     },
+                    project_id=self.project.id,
                 ),
-                Event(
-                    platform="java",
-                    message="Hello from Java",
-                    datetime=now - timedelta(hours=2),
+                self.store_event(
                     data={
+                        "platform": "java",
+                        "message": "Hello from Java",
+                        "timestamp": iso_format(now - timedelta(hours=2)),
                         "type": "default",
-                        "metadata": {},
-                        "tags": [["level", "debug"], ["logger", "java"]],
+                        "level": "debug",
+                        "tags": {"logger": "java"},
                     },
+                    project_id=self.project.id,
                 ),
             ],
         ) == {