From 480f1e60d73044c0e79dde5b9d12c1b7ae080ea9 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Tue, 19 May 2026 15:21:27 +0200 Subject: [PATCH] test: Respect context manager lifecycles in fake_record_sql_queries --- .../integrations/django/test_db_query_data.py | 22 ++++---- .../sqlalchemy/test_sqlalchemy.py | 52 +++++++------------ 2 files changed, 29 insertions(+), 45 deletions(-) diff --git a/tests/integrations/django/test_db_query_data.py b/tests/integrations/django/test_db_query_data.py index 8978253027..272b2c1664 100644 --- a/tests/integrations/django/test_db_query_data.py +++ b/tests/integrations/django/test_db_query_data.py @@ -346,17 +346,16 @@ def test_no_query_source_if_duration_too_short(sentry_init, client, capture_even class fake_record_sql_queries: # noqa: N801 def __init__(self, *args, **kwargs): - with record_sql_queries(*args, **kwargs) as span: - self.span = span - - self.span.start_timestamp = datetime(2024, 1, 1, microsecond=0) - self.span.timestamp = datetime(2024, 1, 1, microsecond=99999) + self._ctx_mgr = record_sql_queries(*args, **kwargs) def __enter__(self): + self.span = self._ctx_mgr.__enter__() + self.span.start_timestamp = datetime(2024, 1, 1, microsecond=0) return self.span def __exit__(self, type, value, traceback): - pass + self._ctx_mgr.__exit__(type, value, traceback) + self.span.timestamp = datetime(2024, 1, 1, microsecond=99999) with mock.patch( "sentry_sdk.integrations.django.record_sql_queries", @@ -404,17 +403,16 @@ def test_query_source_if_duration_over_threshold(sentry_init, client, capture_ev class fake_record_sql_queries: # noqa: N801 def __init__(self, *args, **kwargs): - with record_sql_queries(*args, **kwargs) as span: - self.span = span - - self.span.start_timestamp = datetime(2024, 1, 1, microsecond=0) - self.span.timestamp = datetime(2024, 1, 1, microsecond=101000) + self._ctx_mgr = record_sql_queries(*args, **kwargs) def __enter__(self): + self.span = self._ctx_mgr.__enter__() + self.span.start_timestamp = datetime(2024, 1, 1, microsecond=0) return self.span def __exit__(self, type, value, traceback): - pass + self._ctx_mgr.__exit__(type, value, traceback) + self.span.timestamp = datetime(2024, 1, 1, microsecond=101000) with mock.patch( "sentry_sdk.integrations.django.record_sql_queries", diff --git a/tests/integrations/sqlalchemy/test_sqlalchemy.py b/tests/integrations/sqlalchemy/test_sqlalchemy.py index 1f53c47444..6da8ca1b65 100644 --- a/tests/integrations/sqlalchemy/test_sqlalchemy.py +++ b/tests/integrations/sqlalchemy/test_sqlalchemy.py @@ -934,25 +934,19 @@ class Person(Base): class fake_record_sql_queries: # noqa: N801 def __init__(self, *args, **kwargs): - with record_sql_queries_supporting_streaming( + self._ctx_mgr = record_sql_queries_supporting_streaming( *args, **kwargs - ) as span: - self.span = span - - if span_streaming: - self.span._start_timestamp = datetime(2024, 1, 1, microsecond=0) - self.span._end_timestamp = datetime( - 2024, 1, 1, microsecond=99999 - ) - else: - self.span.start_timestamp = datetime(2024, 1, 1, microsecond=0) - self.span.timestamp = datetime(2024, 1, 1, microsecond=99999) + ) def __enter__(self): + self.span = self._ctx_mgr.__enter__() + self.span._start_timestamp = datetime(2024, 1, 1, microsecond=0) + self.span._end_timestamp = datetime(2024, 1, 1, microsecond=99999) return self.span def __exit__(self, type, value, traceback): - pass + self.span._end_timestamp = None + self._ctx_mgr.__exit__(type, value, traceback) with mock.patch( "sentry_sdk.integrations.sqlalchemy.record_sql_queries_supporting_streaming", @@ -1000,25 +994,18 @@ class Person(Base): class fake_record_sql_queries: # noqa: N801 def __init__(self, *args, **kwargs): - with record_sql_queries_supporting_streaming( + self._ctx_mgr = record_sql_queries_supporting_streaming( *args, **kwargs - ) as span: - self.span = span - - if span_streaming: - self.span._start_timestamp = datetime(2024, 1, 1, microsecond=0) - self.span._end_timestamp = datetime( - 2024, 1, 1, microsecond=99999 - ) - else: - self.span.start_timestamp = datetime(2024, 1, 1, microsecond=0) - self.span.timestamp = datetime(2024, 1, 1, microsecond=99999) + ) def __enter__(self): + self.span = self._ctx_mgr.__enter__() + self.span.start_timestamp = datetime(2024, 1, 1, microsecond=0) return self.span def __exit__(self, type, value, traceback): - pass + self._ctx_mgr.__exit__(type, value, traceback) + self.span.timestamp = datetime(2024, 1, 1, microsecond=99999) with mock.patch( "sentry_sdk.integrations.sqlalchemy.record_sql_queries_supporting_streaming", @@ -1159,19 +1146,18 @@ class Person(Base): class fake_record_sql_queries: # noqa: N801 def __init__(self, *args, **kwargs): - with record_sql_queries_supporting_streaming( + self._ctx_mgr = record_sql_queries_supporting_streaming( *args, **kwargs - ) as span: - self.span = span - - self.span.start_timestamp = datetime(2024, 1, 1, microsecond=0) - self.span.timestamp = datetime(2024, 1, 1, microsecond=101000) + ) def __enter__(self): + self.span = self._ctx_mgr.__enter__() + self.span.start_timestamp = datetime(2024, 1, 1, microsecond=0) return self.span def __exit__(self, type, value, traceback): - pass + self._ctx_mgr.__exit__(type, value, traceback) + self.span.timestamp = datetime(2024, 1, 1, microsecond=101000) with mock.patch( "sentry_sdk.integrations.sqlalchemy.record_sql_queries_supporting_streaming",