|
1 | 1 | import json |
2 | 2 | import sys |
3 | 3 | from typing import List, Any, Mapping |
| 4 | +from unittest import mock |
| 5 | + |
4 | 6 | import pytest |
5 | 7 |
|
6 | 8 | import sentry_sdk |
@@ -268,6 +270,61 @@ def _before_metric(record, hint): |
268 | 270 | assert before_metric_called |
269 | 271 |
|
270 | 272 |
|
| 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 | + |
271 | 328 | def test_batcher_drops_metrics(sentry_init, monkeypatch): |
272 | 329 | sentry_init() |
273 | 330 | client = sentry_sdk.get_client() |
|
0 commit comments