Skip to content

Commit 909e50f

Browse files
authored
test(mini-sentry): Add helper to grab and assert outcomes (#5251)
1 parent 17bd5d0 commit 909e50f

File tree

5 files changed

+21
-28
lines changed

5 files changed

+21
-28
lines changed

tests/integration/fixtures/mini_sentry.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ def __init__(self, server_address, app):
4949
self.project_config_simulate_pending = False
5050
self.project_config_ignore_revision = False
5151

52+
self.timeout = 5
53+
5254
@property
5355
def internal_error_dsn(self):
5456
"""DSN whose events make the test fail."""
@@ -201,7 +203,7 @@ def set_global_config_option(self, option_name, value):
201203
self.global_config["options"][option_name] = value
202204

203205
def get_client_report(self, timeout=None):
204-
envelope = self.captured_events.get(timeout=timeout)
206+
envelope = self.captured_events.get(timeout=timeout or self.timeout)
205207
items = envelope.items
206208
assert len(items) == 1
207209
item = items[0]
@@ -210,7 +212,7 @@ def get_client_report(self, timeout=None):
210212
return json.loads(item.payload.bytes)
211213

212214
def get_metrics(self, timeout=None):
213-
envelope = self.captured_events.get(timeout=timeout)
215+
envelope = self.captured_events.get(timeout=timeout or self.timeout)
214216
items = envelope.items
215217
assert len(items) == 1
216218
item = items[0]
@@ -225,6 +227,17 @@ def get_metrics(self, timeout=None):
225227
),
226228
)
227229

230+
def get_outcomes(self, n, *, timeout=None):
231+
outcomes = []
232+
for _ in range(n):
233+
outcomes.extend(
234+
self.captured_outcomes.get(timeout=timeout or self.timeout).get(
235+
"outcomes"
236+
)
237+
)
238+
outcomes.sort(key=lambda x: x["category"])
239+
return outcomes
240+
228241

229242
def _get_project_id(public_key, project_configs):
230243
for project_id, project_config in project_configs.items():

tests/integration/test_client_report.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,8 @@ def test_client_reports(relay, mini_sentry):
3737
report_payload["timestamp"] = (timestamp + timedelta(milliseconds=100)).isoformat()
3838
relay.send_client_report(project_id, report_payload)
3939

40-
outcomes = []
41-
for _ in range(2):
42-
outcomes.extend(mini_sentry.captured_outcomes.get(timeout=1.2)["outcomes"])
43-
assert mini_sentry.captured_outcomes.qsize() == 0
44-
45-
outcomes.sort(key=lambda x: x["category"])
46-
4740
timestamp_formatted = timestamp.isoformat().split(".")[0] + ".000000Z"
48-
assert outcomes == [
41+
assert mini_sentry.get_outcomes(2) == [
4942
{
5043
"timestamp": timestamp_formatted,
5144
"org_id": 1,
@@ -70,6 +63,8 @@ def test_client_reports(relay, mini_sentry):
7063
},
7164
]
7265

66+
assert mini_sentry.captured_outcomes.empty()
67+
7368

7469
def test_client_reports_bad_timestamps(relay, mini_sentry):
7570
config = {

tests/integration/test_ourlogs.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -874,12 +874,7 @@ def test_filters_are_applied_to_logs(
874874

875875
relay.send_envelope(project_id, envelope, headers=headers)
876876

877-
outcomes = []
878-
for _ in range(2):
879-
outcomes.extend(mini_sentry.captured_outcomes.get(timeout=5).get("outcomes"))
880-
outcomes.sort(key=lambda x: x["category"])
881-
882-
assert outcomes == [
877+
assert mini_sentry.get_outcomes(2) == [
883878
{
884879
"category": DataCategory.LOG_ITEM.value,
885880
"org_id": 1,

tests/integration/test_spans.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -947,12 +947,7 @@ def test_otel_endpoint_disabled(mini_sentry, relay):
947947
json=make_otel_span(start, end),
948948
)
949949

950-
outcomes = []
951-
for _ in range(2):
952-
outcomes.extend(mini_sentry.captured_outcomes.get(timeout=3).get("outcomes"))
953-
outcomes.sort(key=lambda x: x["category"])
954-
955-
assert outcomes == [
950+
assert mini_sentry.get_outcomes(2) == [
956951
{
957952
"org_id": 1,
958953
"key_id": 123,

tests/integration/test_spansv2.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -508,12 +508,7 @@ def test_spanv2_inbound_filters(
508508

509509
relay.send_envelope(project_id, envelope, headers=headers)
510510

511-
outcomes = []
512-
for _ in range(2):
513-
outcomes.extend(mini_sentry.captured_outcomes.get(timeout=5).get("outcomes"))
514-
outcomes.sort(key=lambda x: x["category"])
515-
516-
assert outcomes == [
511+
assert mini_sentry.get_outcomes(2) == [
517512
{
518513
"category": DataCategory.SPAN.value,
519514
"org_id": 1,

0 commit comments

Comments
 (0)