|
1 | 1 | from unittest import mock
|
2 | 2 |
|
| 3 | +from django.test import override_settings |
3 | 4 | from django.urls import reverse
|
4 | 5 |
|
| 6 | +from sentry.api.endpoints.organization_events import RATE_LIMIT |
5 | 7 | from sentry.search.events import constants
|
6 | 8 | from sentry.testutils.cases import APITestCase
|
7 |
| -from sentry.testutils.helpers.datetime import before_now, iso_format |
| 9 | +from sentry.testutils.helpers.datetime import before_now, freeze_time, iso_format |
8 | 10 | from sentry.testutils.silo import region_silo_test
|
9 | 11 | from sentry.utils.snuba import QueryExecutionError, QueryIllegalTypeOfArgument, RateLimitExceeded
|
10 | 12 |
|
@@ -156,3 +158,17 @@ def test_valid_referrer(self, mock):
|
156 | 158 | self.do_request(query)
|
157 | 159 | _, kwargs = mock.call_args
|
158 | 160 | self.assertEqual(kwargs["referrer"], "api.performance.transaction-summary")
|
| 161 | + |
| 162 | + @override_settings(SENTRY_SELF_HOSTED=False) |
| 163 | + def test_ratelimit(self): |
| 164 | + query = { |
| 165 | + "field": ["transaction"], |
| 166 | + "project": [self.project.id], |
| 167 | + } |
| 168 | + with freeze_time("2000-01-01"): |
| 169 | + for _ in range(RATE_LIMIT): |
| 170 | + self.do_request(query, features={"organizations:discover-events-rate-limit": True}) |
| 171 | + response = self.do_request( |
| 172 | + query, features={"organizations:discover-events-rate-limit": True} |
| 173 | + ) |
| 174 | + assert response.status_code == 429, response.content |
0 commit comments