@@ -72,16 +72,19 @@ def test_basic(
7272 assert span ["description" ] == "aws.s3.ListObjects"
7373
7474
75+ @pytest .mark .parametrize ("send_default_pii" , [True , False ])
7576@pytest .mark .parametrize ("span_streaming" , [True , False ])
7677def test_streaming (
7778 sentry_init ,
7879 capture_events ,
7980 capture_items ,
8081 span_streaming ,
82+ send_default_pii ,
8183):
8284 sentry_init (
8385 traces_sample_rate = 1.0 ,
8486 integrations = [Boto3Integration ()],
87+ send_default_pii = send_default_pii ,
8588 _experiments = {"trace_lifecycle" : "stream" if span_streaming else "static" },
8689 )
8790
@@ -108,26 +111,32 @@ def test_streaming(
108111 span1 = spans [0 ]
109112 assert span1 ["attributes" ]["sentry.op" ] == "http.client"
110113 assert span1 ["name" ] == "aws.s3.GetObject"
111- assert span1 ["attributes" ] == ApproxDict (
112- {
113- "http.request.method" : "GET" ,
114- "rpc.method" : "S3/GetObject" ,
115- "sentry.environment" : "production" ,
116- "sentry.op" : "http.client" ,
117- "sentry.origin" : "auto.http.boto3" ,
118- "sentry.release" : mock .ANY ,
119- "sentry.sdk.name" : "sentry.python" ,
120- "sentry.sdk.version" : mock .ANY ,
121- "sentry.segment.id" : mock .ANY ,
122- "sentry.segment.name" : "custom parent" ,
123- "server.address" : mock .ANY ,
124- "thread.id" : mock .ANY ,
125- "thread.name" : mock .ANY ,
126- "url.full" : "https://bucket.s3.amazonaws.com/foo.pdf" ,
127- "url.fragment" : "" ,
128- "url.query" : "" ,
129- }
130- )
114+
115+ expected_attrs = {
116+ "http.request.method" : "GET" ,
117+ "rpc.method" : "S3/GetObject" ,
118+ "sentry.environment" : "production" ,
119+ "sentry.op" : "http.client" ,
120+ "sentry.origin" : "auto.http.boto3" ,
121+ "sentry.release" : mock .ANY ,
122+ "sentry.sdk.name" : "sentry.python" ,
123+ "sentry.sdk.version" : mock .ANY ,
124+ "sentry.segment.id" : mock .ANY ,
125+ "sentry.segment.name" : "custom parent" ,
126+ "server.address" : mock .ANY ,
127+ "thread.id" : mock .ANY ,
128+ "thread.name" : mock .ANY ,
129+ }
130+ if send_default_pii :
131+ expected_attrs ["url.full" ] = "https://bucket.s3.amazonaws.com/foo.pdf"
132+ expected_attrs ["url.fragment" ] = ""
133+ expected_attrs ["url.query" ] = ""
134+ assert span1 ["attributes" ] == ApproxDict (expected_attrs )
135+
136+ if not send_default_pii :
137+ assert "url.full" not in span1 ["attributes" ]
138+ assert "url.fragment" not in span1 ["attributes" ]
139+ assert "url.query" not in span1 ["attributes" ]
131140
132141 span2 = spans [1 ]
133142 assert span2 ["attributes" ]["sentry.op" ] == "http.client.stream"
@@ -233,6 +242,7 @@ def test_omit_url_data_if_parsing_fails(
233242 sentry_init (
234243 traces_sample_rate = 1.0 ,
235244 integrations = [Boto3Integration ()],
245+ send_default_pii = True ,
236246 _experiments = {"trace_lifecycle" : "stream" if span_streaming else "static" },
237247 )
238248
0 commit comments