1212 unignore_logger ,
1313 unignore_logger_for_sentry_logs ,
1414)
15- from tests .test_logs import envelopes_to_logs
1615
1716other_logger = logging .getLogger ("testfoo" )
1817logger = logging .getLogger (__name__ )
@@ -271,28 +270,29 @@ def test_ignore_logger_wildcard(sentry_init, capture_events, request):
271270 assert event ["logentry" ]["formatted" ] == "hi"
272271
273272
274- def test_ignore_logger_does_not_affect_sentry_logs (
275- sentry_init , capture_envelopes , request
276- ):
273+ def test_ignore_logger_does_not_affect_sentry_logs (sentry_init , capture_items , request ):
277274 """ignore_logger should suppress events/breadcrumbs but not Sentry Logs."""
278275 sentry_init (enable_logs = True )
279- envelopes = capture_envelopes ( )
276+ items = capture_items ( "log" )
280277
281278 ignore_logger ("testfoo" )
282279 request .addfinalizer (lambda : unignore_logger ("testfoo" ))
283280
284281 other_logger .error ("hi" )
285282 get_client ().flush ()
286283
287- logs = envelopes_to_logs ( envelopes )
284+ logs = [ item . payload for item in items ]
288285 assert len (logs ) == 1
289286 assert logs [0 ]["body" ] == "hi"
290287
291288
292- def test_ignore_logger_for_sentry_logs (sentry_init , capture_envelopes , request ):
289+ def test_ignore_logger_for_sentry_logs (
290+ sentry_init , capture_envelopes , capture_items , request
291+ ):
293292 """ignore_logger_for_sentry_logs should suppress Sentry Logs but not events."""
294293 sentry_init (enable_logs = True )
295294 envelopes = capture_envelopes ()
295+ items = capture_items ("log" )
296296
297297 ignore_logger_for_sentry_logs ("testfoo" )
298298 request .addfinalizer (lambda : unignore_logger_for_sentry_logs ("testfoo" ))
@@ -305,7 +305,7 @@ def test_ignore_logger_for_sentry_logs(sentry_init, capture_envelopes, request):
305305 assert len (event_envelopes ) == 1
306306
307307 # But no Sentry Logs
308- logs = envelopes_to_logs ( envelopes )
308+ logs = [ item . payload for item in items ]
309309 assert len (logs ) == 0
310310
311311
@@ -347,18 +347,18 @@ def test_logging_dictionary_args(sentry_init, capture_events):
347347 assert event ["logentry" ]["params" ] == {"foo" : "bar" , "bar" : "baz" }
348348
349349
350- def test_sentry_logs_warning (sentry_init , capture_envelopes ):
350+ def test_sentry_logs_warning (sentry_init , capture_items ):
351351 """
352352 The python logger module should create 'warn' sentry logs if the flag is on.
353353 """
354354 sentry_init (enable_logs = True )
355- envelopes = capture_envelopes ( )
355+ items = capture_items ( "log" )
356356
357357 python_logger = logging .Logger ("test-logger" )
358358 python_logger .warning ("this is %s a template %s" , "1" , "2" )
359359
360360 get_client ().flush ()
361- logs = envelopes_to_logs ( envelopes )
361+ logs = [ item . payload for item in items ]
362362 attrs = logs [0 ]["attributes" ]
363363 assert attrs ["sentry.message.template" ] == "this is %s a template %s"
364364 assert "code.file.path" in attrs
@@ -368,8 +368,8 @@ def test_sentry_logs_warning(sentry_init, capture_envelopes):
368368 assert attrs ["sentry.message.parameter.0" ] == "1"
369369 assert attrs ["sentry.message.parameter.1" ] == "2"
370370 assert attrs ["sentry.origin" ] == "auto.log.stdlib"
371- assert logs [0 ]["severity_number" ] == 13
372- assert logs [0 ]["severity_text" ] == "warn"
371+ assert logs [0 ]["attributes" ][ "sentry. severity_number" ] == 13
372+ assert logs [0 ]["attributes" ][ "sentry. severity_text" ] == "warn"
373373
374374
375375def test_sentry_logs_debug (sentry_init , capture_envelopes ):
@@ -404,12 +404,13 @@ def test_no_log_infinite_loop(sentry_init, capture_envelopes):
404404 assert len (envelopes ) == 1
405405
406406
407- def test_logging_errors (sentry_init , capture_envelopes ):
407+ def test_logging_errors (sentry_init , capture_envelopes , capture_items ):
408408 """
409409 The python logger module should be able to log errors without erroring
410410 """
411411 sentry_init (enable_logs = True )
412412 envelopes = capture_envelopes ()
413+ items = capture_items ("log" )
413414
414415 python_logger = logging .Logger ("test-logger" )
415416 python_logger .error (Exception ("test exc 1" ))
@@ -421,13 +422,13 @@ def test_logging_errors(sentry_init, capture_envelopes):
421422 error_event_2 = envelopes [1 ].items [0 ].payload .json
422423 assert error_event_2 ["level" ] == "error"
423424
424- logs = envelopes_to_logs ( envelopes )
425- assert logs [0 ]["severity_text" ] == "error"
425+ logs = [ item . payload for item in items ]
426+ assert logs [0 ]["attributes" ][ "sentry. severity_text" ] == "error"
426427 assert "sentry.message.template" not in logs [0 ]["attributes" ]
427428 assert "sentry.message.parameter.0" not in logs [0 ]["attributes" ]
428429 assert "code.line.number" in logs [0 ]["attributes" ]
429430
430- assert logs [1 ]["severity_text" ] == "error"
431+ assert logs [1 ]["attributes" ][ "sentry. severity_text" ] == "error"
431432 assert logs [1 ]["attributes" ]["sentry.message.template" ] == "error is %s"
432433 assert logs [1 ]["attributes" ]["sentry.message.parameter.0" ] in (
433434 "Exception('test exc 2')" ,
@@ -438,15 +439,15 @@ def test_logging_errors(sentry_init, capture_envelopes):
438439 assert len (logs ) == 2
439440
440441
441- def test_log_strips_project_root (sentry_init , capture_envelopes ):
442+ def test_log_strips_project_root (sentry_init , capture_items ):
442443 """
443444 The python logger should strip project roots from the log record path
444445 """
445446 sentry_init (
446447 enable_logs = True ,
447448 project_root = "/custom/test" ,
448449 )
449- envelopes = capture_envelopes ( )
450+ items = capture_items ( "log" )
450451
451452 python_logger = logging .Logger ("test-logger" )
452453 python_logger .handle (
@@ -462,18 +463,18 @@ def test_log_strips_project_root(sentry_init, capture_envelopes):
462463 )
463464 get_client ().flush ()
464465
465- logs = envelopes_to_logs ( envelopes )
466+ logs = [ item . payload for item in items ]
466467 assert len (logs ) == 1
467468 attrs = logs [0 ]["attributes" ]
468469 assert attrs ["code.file.path" ] == "blah/path.py"
469470
470471
471- def test_logger_with_all_attributes (sentry_init , capture_envelopes ):
472+ def test_logger_with_all_attributes (sentry_init , capture_items ):
472473 """
473474 The python logger should be able to log all attributes, including extra data.
474475 """
475476 sentry_init (enable_logs = True )
476- envelopes = capture_envelopes ( )
477+ items = capture_items ( "log" )
477478
478479 python_logger = logging .Logger ("test-logger" )
479480 python_logger .warning (
@@ -483,7 +484,7 @@ def test_logger_with_all_attributes(sentry_init, capture_envelopes):
483484 )
484485 get_client ().flush ()
485486
486- logs = envelopes_to_logs ( envelopes )
487+ logs = [ item . payload for item in items ]
487488
488489 assert "span_id" in logs [0 ]
489490 assert logs [0 ]["span_id" ] is None
@@ -544,12 +545,12 @@ def test_logger_with_all_attributes(sentry_init, capture_envelopes):
544545 }
545546
546547
547- def test_sentry_logs_named_parameters (sentry_init , capture_envelopes ):
548+ def test_sentry_logs_named_parameters (sentry_init , capture_items ):
548549 """
549550 The python logger module should capture named parameters from dictionary arguments in Sentry logs.
550551 """
551552 sentry_init (enable_logs = True )
552- envelopes = capture_envelopes ( )
553+ items = capture_items ( "log" )
553554
554555 python_logger = logging .Logger ("test-logger" )
555556 python_logger .info (
@@ -564,7 +565,7 @@ def test_sentry_logs_named_parameters(sentry_init, capture_envelopes):
564565 )
565566
566567 get_client ().flush ()
567- logs = envelopes_to_logs ( envelopes )
568+ logs = [ item . payload for item in items ]
568569
569570 assert len (logs ) == 1
570571 attrs = logs [0 ]["attributes" ]
@@ -585,16 +586,16 @@ def test_sentry_logs_named_parameters(sentry_init, capture_envelopes):
585586 # Check other standard attributes
586587 assert attrs ["logger.name" ] == "test-logger"
587588 assert attrs ["sentry.origin" ] == "auto.log.stdlib"
588- assert logs [0 ]["severity_number" ] == 9 # info level
589- assert logs [0 ]["severity_text" ] == "info"
589+ assert logs [0 ]["attributes" ][ "sentry. severity_number" ] == 9 # info level
590+ assert logs [0 ]["attributes" ][ "sentry. severity_text" ] == "info"
590591
591592
592- def test_sentry_logs_named_parameters_complex_values (sentry_init , capture_envelopes ):
593+ def test_sentry_logs_named_parameters_complex_values (sentry_init , capture_items ):
593594 """
594595 The python logger module should handle complex values in named parameters using safe_repr.
595596 """
596597 sentry_init (enable_logs = True )
597- envelopes = capture_envelopes ( )
598+ items = capture_items ( "log" )
598599
599600 python_logger = logging .Logger ("test-logger" )
600601 complex_object = {"nested" : {"data" : [1 , 2 , 3 ]}, "tuple" : (4 , 5 , 6 )}
@@ -607,7 +608,7 @@ def test_sentry_logs_named_parameters_complex_values(sentry_init, capture_envelo
607608 )
608609
609610 get_client ().flush ()
610- logs = envelopes_to_logs ( envelopes )
611+ logs = [ item . payload for item in items ]
611612
612613 assert len (logs ) == 1
613614 attrs = logs [0 ]["attributes" ]
@@ -623,18 +624,18 @@ def test_sentry_logs_named_parameters_complex_values(sentry_init, capture_envelo
623624 assert "data" in complex_param
624625
625626
626- def test_sentry_logs_no_parameters_no_template (sentry_init , capture_envelopes ):
627+ def test_sentry_logs_no_parameters_no_template (sentry_init , capture_items ):
627628 """
628629 There shouldn't be a template if there are no parameters.
629630 """
630631 sentry_init (enable_logs = True )
631- envelopes = capture_envelopes ( )
632+ items = capture_items ( "log" )
632633
633634 python_logger = logging .Logger ("test-logger" )
634635 python_logger .warning ("Warning about something without any parameters." )
635636
636637 get_client ().flush ()
637- logs = envelopes_to_logs ( envelopes )
638+ logs = [ item . payload for item in items ]
638639
639640 assert len (logs ) == 1
640641
0 commit comments