Skip to content

Commit 44a308d

Browse files
committed
tests: Add dedicated transport format test for metrics, logs
1 parent 8159cae commit 44a308d

File tree

2 files changed

+120
-0
lines changed

2 files changed

+120
-0
lines changed

tests/test_logs.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,69 @@ def test_logs_with_literal_braces(
471471
assert "sentry.message.template" not in logs[0]["attributes"]
472472

473473

474+
@minimum_python_37
475+
def test_transport_format(sentry_init, capture_envelopes):
476+
sentry_init(enable_logs=True, server_name="test-server", release="1.0.0")
477+
478+
envelopes = capture_envelopes()
479+
480+
sentry_sdk.logger.warning("This is a log...")
481+
482+
sentry_sdk.get_client().flush()
483+
484+
assert len(envelopes) == 1
485+
assert len(envelopes[0].items) == 1
486+
item = envelopes[0].items[0]
487+
488+
assert item.type == "log"
489+
assert item.headers == {
490+
"type": "log",
491+
"item_count": 1,
492+
"content_type": "application/vnd.sentry.items.log+json",
493+
}
494+
assert item.payload.json == {
495+
"items": [
496+
{
497+
"body": "This is a log...",
498+
"level": "warn",
499+
"timestamp": mock.ANY,
500+
"trace_id": mock.ANY,
501+
"span_id": mock.ANY,
502+
"attributes": {
503+
"sentry.environment": {
504+
"type": "string",
505+
"value": "production",
506+
},
507+
"sentry.release": {
508+
"type": "string",
509+
"value": "1.0.0",
510+
},
511+
"sentry.sdk.name": {
512+
"type": "string",
513+
"value": mock.ANY,
514+
},
515+
"sentry.sdk.version": {
516+
"type": "string",
517+
"value": VERSION,
518+
},
519+
"sentry.severity_number": {
520+
"type": "integer",
521+
"value": 13,
522+
},
523+
"sentry.severity_text": {
524+
"type": "string",
525+
"value": "warn",
526+
},
527+
"server.address": {
528+
"type": "string",
529+
"value": "test-server",
530+
},
531+
},
532+
}
533+
]
534+
}
535+
536+
474537
@minimum_python_37
475538
def test_batcher_drops_logs(sentry_init, monkeypatch):
476539
sentry_init(enable_logs=True, server_name="test-server", release="1.0.0")

tests/test_metrics.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import json
22
import sys
33
from typing import List, Any, Mapping
4+
from unittest import mock
5+
46
import pytest
57

68
import sentry_sdk
@@ -268,6 +270,61 @@ def _before_metric(record, hint):
268270
assert before_metric_called
269271

270272

273+
def test_transport_format(sentry_init, capture_envelopes):
274+
sentry_init(server_name="test-server", release="1.0.0")
275+
276+
envelopes = capture_envelopes()
277+
278+
sentry_sdk.metrics.count("test.counter", 1)
279+
280+
sentry_sdk.get_client().flush()
281+
282+
assert len(envelopes) == 1
283+
assert len(envelopes[0].items) == 1
284+
item = envelopes[0].items[0]
285+
286+
assert item.type == "trace_metric"
287+
assert item.headers == {
288+
"type": "trace_metric",
289+
"item_count": 1,
290+
"content_type": "application/vnd.sentry.items.trace-metric+json",
291+
}
292+
assert item.payload.json == {
293+
"items": [
294+
{
295+
"name": "test.counter",
296+
"type": "counter",
297+
"value": 1,
298+
"timestamp": mock.ANY,
299+
"trace_id": mock.ANY,
300+
"span_id": mock.ANY,
301+
"attributes": {
302+
"sentry.environment": {
303+
"type": "string",
304+
"value": "production",
305+
},
306+
"sentry.release": {
307+
"type": "string",
308+
"value": "1.0.0",
309+
},
310+
"sentry.sdk.name": {
311+
"type": "string",
312+
"value": mock.ANY,
313+
},
314+
"sentry.sdk.version": {
315+
"type": "string",
316+
"value": VERSION,
317+
},
318+
"server.address": {
319+
"type": "string",
320+
"value": "test-server",
321+
},
322+
},
323+
}
324+
]
325+
}
326+
327+
271328
def test_batcher_drops_metrics(sentry_init, monkeypatch):
272329
sentry_init()
273330
client = sentry_sdk.get_client()

0 commit comments

Comments
 (0)