@@ -59,17 +59,20 @@ def clear_captured_requests():
5959 PyreqwestMockHandler .captured_requests .clear ()
6060
6161
62+ @pytest .mark .parametrize ("send_default_pii" , [True , False ])
6263@pytest .mark .parametrize ("span_streaming" , [True , False ])
6364def test_sync_client_spans (
6465 sentry_init ,
6566 capture_events ,
6667 capture_items ,
6768 server_port ,
6869 span_streaming ,
70+ send_default_pii ,
6971):
7072 sentry_init (
7173 integrations = [PyreqwestIntegration ()],
7274 traces_sample_rate = 1.0 ,
75+ send_default_pii = send_default_pii ,
7376 _experiments = {"trace_lifecycle" : "stream" if span_streaming else "static" },
7477 )
7578
@@ -88,12 +91,21 @@ def test_sync_client_spans(
8891 span = spans [0 ]
8992 assert span ["attributes" ]["sentry.op" ] == "http.client"
9093 assert span ["name" ] == f"GET http://localhost:{ server_port } /hello"
91- assert span ["attributes" ]["url.full" ] == f"http://localhost:{ server_port } /hello"
9294 assert span ["attributes" ][SPANDATA .HTTP_REQUEST_METHOD ] == "GET"
9395 assert span ["attributes" ][SPANDATA .HTTP_STATUS_CODE ] == 200
94- assert span ["attributes" ][SPANDATA .URL_QUERY ] == "q=test"
95- assert span ["attributes" ][SPANDATA .URL_FRAGMENT ] == "frag"
9696 assert span ["attributes" ]["sentry.origin" ] == "auto.http.pyreqwest"
97+
98+ if send_default_pii :
99+ assert (
100+ span ["attributes" ]["url.full" ]
101+ == f"http://localhost:{ server_port } /hello"
102+ )
103+ assert span ["attributes" ][SPANDATA .URL_QUERY ] == "q=test"
104+ assert span ["attributes" ][SPANDATA .URL_FRAGMENT ] == "frag"
105+ else :
106+ assert "url.full" not in span ["attributes" ]
107+ assert SPANDATA .URL_QUERY not in span ["attributes" ]
108+ assert SPANDATA .URL_FRAGMENT not in span ["attributes" ]
97109 else :
98110 events = capture_events ()
99111
@@ -116,17 +128,20 @@ def test_sync_client_spans(
116128
117129
118130@pytest .mark .asyncio
131+ @pytest .mark .parametrize ("send_default_pii" , [True , False ])
119132@pytest .mark .parametrize ("span_streaming" , [True , False ])
120133async def test_async_client_spans (
121134 sentry_init ,
122135 capture_events ,
123136 capture_items ,
124137 server_port ,
125138 span_streaming ,
139+ send_default_pii ,
126140):
127141 sentry_init (
128142 integrations = [PyreqwestIntegration ()],
129143 traces_sample_rate = 1.0 ,
144+ send_default_pii = send_default_pii ,
130145 _experiments = {"trace_lifecycle" : "stream" if span_streaming else "static" },
131146 )
132147
@@ -145,10 +160,14 @@ async def test_async_client_spans(
145160 span = spans [0 ]
146161 assert span ["attributes" ]["sentry.op" ] == "http.client"
147162 assert span ["name" ] == f"GET { url } "
148- assert span ["attributes" ]["url.full" ] == url
149163 assert span ["attributes" ][SPANDATA .HTTP_REQUEST_METHOD ] == "GET"
150164 assert span ["attributes" ][SPANDATA .HTTP_STATUS_CODE ] == 200
151165 assert span ["attributes" ]["sentry.origin" ] == "auto.http.pyreqwest"
166+
167+ if send_default_pii :
168+ assert span ["attributes" ]["url.full" ] == url
169+ else :
170+ assert "url.full" not in span ["attributes" ]
152171 else :
153172 events = capture_events ()
154173
@@ -168,17 +187,20 @@ async def test_async_client_spans(
168187 assert span ["origin" ] == "auto.http.pyreqwest"
169188
170189
190+ @pytest .mark .parametrize ("send_default_pii" , [True , False ])
171191@pytest .mark .parametrize ("span_streaming" , [True , False ])
172192def test_sync_simple_request_spans (
173193 sentry_init ,
174194 capture_events ,
175195 capture_items ,
176196 server_port ,
177197 span_streaming ,
198+ send_default_pii ,
178199):
179200 sentry_init (
180201 integrations = [PyreqwestIntegration ()],
181202 traces_sample_rate = 1.0 ,
203+ send_default_pii = send_default_pii ,
182204 _experiments = {"trace_lifecycle" : "stream" if span_streaming else "static" },
183205 )
184206
@@ -196,10 +218,14 @@ def test_sync_simple_request_spans(
196218 span = spans [0 ]
197219 assert span ["attributes" ]["sentry.op" ] == "http.client"
198220 assert span ["name" ] == f"GET { url } "
199- assert span ["attributes" ]["url.full" ] == url
200221 assert span ["attributes" ][SPANDATA .HTTP_REQUEST_METHOD ] == "GET"
201222 assert span ["attributes" ][SPANDATA .HTTP_STATUS_CODE ] == 200
202223 assert span ["attributes" ]["sentry.origin" ] == "auto.http.pyreqwest"
224+
225+ if send_default_pii :
226+ assert span ["attributes" ]["url.full" ] == url
227+ else :
228+ assert "url.full" not in span ["attributes" ]
203229 else :
204230 events = capture_events ()
205231
@@ -219,17 +245,20 @@ def test_sync_simple_request_spans(
219245
220246
221247@pytest .mark .asyncio
248+ @pytest .mark .parametrize ("send_default_pii" , [True , False ])
222249@pytest .mark .parametrize ("span_streaming" , [True , False ])
223250async def test_async_simple_request_spans (
224251 sentry_init ,
225252 capture_events ,
226253 capture_items ,
227254 server_port ,
228255 span_streaming ,
256+ send_default_pii ,
229257):
230258 sentry_init (
231259 integrations = [PyreqwestIntegration ()],
232260 traces_sample_rate = 1.0 ,
261+ send_default_pii = send_default_pii ,
233262 _experiments = {"trace_lifecycle" : "stream" if span_streaming else "static" },
234263 )
235264
@@ -247,10 +276,14 @@ async def test_async_simple_request_spans(
247276 span = spans [0 ]
248277 assert span ["attributes" ]["sentry.op" ] == "http.client"
249278 assert span ["name" ] == f"GET { url } "
250- assert span ["attributes" ]["url.full" ] == url
251279 assert span ["attributes" ][SPANDATA .HTTP_REQUEST_METHOD ] == "GET"
252280 assert span ["attributes" ][SPANDATA .HTTP_STATUS_CODE ] == 200
253281 assert span ["attributes" ]["sentry.origin" ] == "auto.http.pyreqwest"
282+
283+ if send_default_pii :
284+ assert span ["attributes" ]["url.full" ] == url
285+ else :
286+ assert "url.full" not in span ["attributes" ]
254287 else :
255288 events = capture_events ()
256289
0 commit comments