bug_fix(1477): type handling in _add_sql_comment (#3113)

---------

Co-authored-by: Tammy Baylis <96076570+tammy-baylis-swi@users.noreply.github.com>
Co-authored-by: Leighton Chen <lechen@microsoft.com>
Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
This commit is contained in:
Bharat Arya
2025-03-27 19:13:30 +05:30
committed by GitHub
parent 139d787168
commit 50ab047143
6 changed files with 83 additions and 0 deletions

View File

@ -131,6 +131,38 @@ class TestMiddleware(WsgiTestBase):
"00000000000000000deadbeef-000000000000beef-00'*/;",
)
@patch(
"opentelemetry.instrumentation.django.middleware.sqlcommenter_middleware._get_opentelemetry_values"
)
def test_query_wrapper_non_string_queries(self, trace_capture):
"""Test that non-string queries and psycopg2 composable objects are handled correctly."""
requests_mock = MagicMock()
requests_mock.resolver_match.view_name = "view"
requests_mock.resolver_match.route = "route"
requests_mock.resolver_match.app_name = "app"
trace_capture.return_value = {
"traceparent": "*traceparent='00-000000000000000000000000deadbeef-000000000000beef-00"
}
qw_instance = _QueryWrapper(requests_mock)
execute_mock_obj = MagicMock()
input_query = MagicMock(as_string=lambda conn: "SELECT 2")
expected_query_start = "SELECT 2"
qw_instance(
execute_mock_obj,
input_query,
MagicMock("test"),
MagicMock("test1"),
MagicMock(),
)
output_sql = execute_mock_obj.call_args[0][0]
self.assertTrue(
str(output_sql).startswith(str(expected_query_start)),
f"Query should start with {expected_query_start!r}, got {output_sql!r}",
)
@patch(
"opentelemetry.instrumentation.django.middleware.sqlcommenter_middleware._QueryWrapper"
)