Browse Source

fix(workflow): Issue alert release filter not evaluating properly (#24643)

* Comparing against lower case release
Chris Fuller 4 years ago
parent
commit
f819dff75f
2 changed files with 38 additions and 1 deletions
  1. 1 1
      src/sentry/rules/filters/latest_release.py
  2. 37 0
      tests/sentry/rules/test_processor.py

+ 1 - 1
src/sentry/rules/filters/latest_release.py

@@ -50,7 +50,7 @@ class LatestReleaseFilter(EventFilter):
         )
 
         for release in releases:
-            if release == latest_release.version:
+            if release == latest_release.version.lower():
                 return True
 
         return False

+ 37 - 0
tests/sentry/rules/test_processor.py

@@ -213,3 +213,40 @@ class RuleProcessorTestFilters(TestCase):
         assert len(futures) == 1
         assert futures[0].rule == self.rule
         assert futures[0].kwargs == {}
+
+    def test_latest_release(self):
+        # setup an alert rule with 1 conditions and no filters that passes
+        self.create_release(project=self.project, version="2021-02.newRelease")
+
+        self.event = self.store_event(
+            data={"release": "2021-02.newRelease"}, project_id=self.project.id
+        )
+
+        Rule.objects.filter(project=self.event.project).delete()
+        self.rule = Rule.objects.create(
+            project=self.event.project,
+            data={
+                "actions": [EMAIL_ACTION_DATA],
+                "filter_match": "any",
+                "conditions": [
+                    {
+                        "id": "sentry.rules.filters.latest_release.LatestReleaseFilter",
+                        "name": "The event is from the latest release",
+                    },
+                ],
+            },
+        )
+
+        rp = RuleProcessor(
+            self.event,
+            is_new=True,
+            is_regression=False,
+            is_new_group_environment=True,
+            has_reappeared=False,
+        )
+        results = list(rp.apply())
+        assert len(results) == 1
+        callback, futures = results[0]
+        assert len(futures) == 1
+        assert futures[0].rule == self.rule
+        assert futures[0].kwargs == {}