Skip to content

Commit dfdc2f0

Browse files
sentrivanapabloDeputter
authored andcommitted
tests: Remove send_default_pii from non-integration tests (#7885)
Closes https://linear.app/getsentry/issue/PY-2799/remove-send-default-pii-from-non-integration-tests
1 parent bf7a4e6 commit dfdc2f0

6 files changed

Lines changed: 43 additions & 179 deletions

File tree

‎tests/test_attributes.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ class Cat:
190190
def test_user_attributes(sentry_init, capture_items):
191191
sentry_init(
192192
traces_sample_rate=1.0,
193-
send_default_pii=True,
193+
data_collection={"user_info": True},
194194
)
195195

196196
items = capture_items("trace_metric", "span")

‎tests/test_client.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -953,7 +953,7 @@ def test_dict_changed_during_iteration(sentry_init, capture_events):
953953
954954
See https://github.com/getsentry/sentry-python/pull/298 for discussion
955955
"""
956-
sentry_init(send_default_pii=True)
956+
sentry_init(data_collection={})
957957
events = capture_events()
958958

959959
class TooSmartClass:

‎tests/test_data_collection.py‎

Lines changed: 35 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import warnings
2-
31
import pytest
42

53
import sentry_sdk
@@ -94,42 +92,10 @@ def _get(dc, path):
9492

9593

9694
@pytest.mark.parametrize(
97-
"options,expected",
95+
"data_collection,expected",
9896
[
9997
pytest.param(
10098
{},
101-
{
102-
"user_info": False,
103-
"gen_ai.inputs": False,
104-
"gen_ai.outputs": False,
105-
"cookies.mode": "denylist",
106-
"url_query_params.mode": "denylist",
107-
"http_headers.request.mode": "denylist",
108-
"http_bodies": _ALL_HTTP_BODY_TYPES,
109-
"queues": False,
110-
"frame_context_lines": 5,
111-
},
112-
id="no_options_collects_no_pii",
113-
),
114-
pytest.param(
115-
{"send_default_pii": True},
116-
{
117-
"user_info": True,
118-
"gen_ai.inputs": True,
119-
"gen_ai.outputs": True,
120-
"cookies.mode": "denylist",
121-
"url_query_params.mode": "denylist",
122-
"queues": True,
123-
},
124-
id="send_default_pii_true_collects_pii",
125-
),
126-
pytest.param(
127-
{"send_default_pii": False},
128-
{"user_info": False, "cookies.mode": "denylist", "queues": False},
129-
id="send_default_pii_false_collects_no_pii",
130-
),
131-
pytest.param(
132-
{"data_collection": {}},
13399
{
134100
"user_info": True,
135101
"gen_ai.inputs": True,
@@ -142,7 +108,7 @@ def _get(dc, path):
142108
id="explicit_data_collection_uses_spec_defaults",
143109
),
144110
pytest.param(
145-
{"data_collection": {"user_info": False, "http_bodies": []}},
111+
{"user_info": False, "http_bodies": []},
146112
{
147113
"user_info": False,
148114
"http_bodies": [],
@@ -153,12 +119,10 @@ def _get(dc, path):
153119
),
154120
pytest.param(
155121
{
156-
"data_collection": {
157-
"cookies": {"mode": "off"},
158-
"url_query_params": {"mode": "allowlist", "terms": ["page"]},
159-
"http_headers": {"request": {"mode": "off"}},
160-
"gen_ai": {"inputs": False, "outputs": True},
161-
}
122+
"cookies": {"mode": "off"},
123+
"url_query_params": {"mode": "allowlist", "terms": ["page"]},
124+
"http_headers": {"request": {"mode": "off"}},
125+
"gen_ai": {"inputs": False, "outputs": True},
162126
},
163127
{
164128
"cookies.mode": "off",
@@ -172,13 +136,11 @@ def _get(dc, path):
172136
),
173137
pytest.param(
174138
{
175-
"data_collection": {
176-
"cookies": None,
177-
"http_headers": None,
178-
"url_query_params": None,
179-
"graphql": None,
180-
"gen_ai": None,
181-
}
139+
"cookies": None,
140+
"http_headers": None,
141+
"url_query_params": None,
142+
"graphql": None,
143+
"gen_ai": None,
182144
},
183145
{
184146
"cookies.mode": "denylist",
@@ -192,7 +154,7 @@ def _get(dc, path):
192154
id="none_values_fall_back_to_spec_defaults",
193155
),
194156
pytest.param(
195-
{"data_collection": {}},
157+
{},
196158
{
197159
"graphql.document": True,
198160
"graphql.variables": True,
@@ -201,67 +163,45 @@ def _get(dc, path):
201163
id="explicit_graphql_database_defaults",
202164
),
203165
pytest.param(
204-
{"send_default_pii": False},
205-
{
206-
"graphql.document": False,
207-
"graphql.variables": False,
208-
"database_query_data": False,
209-
"queues": False,
210-
},
211-
id="legacy_pii_off_gates_graphql_database_and_queues",
212-
),
213-
pytest.param(
214-
{"send_default_pii": True},
215-
{
216-
"graphql.document": True,
217-
"graphql.variables": True,
218-
"database_query_data": True,
219-
"queues": True,
220-
},
221-
id="legacy_pii_on_collects_graphql_database_and_queues",
222-
),
223-
pytest.param(
224-
{"data_collection": {"graphql": {"variables": False}}},
166+
{"graphql": {"variables": False}},
225167
{"graphql.document": True, "graphql.variables": False},
226168
id="explicit_partial_graphql_fills_omitted",
227169
),
228170
pytest.param(
229-
{"data_collection": {"frame_context_lines": True}},
171+
{"frame_context_lines": True},
230172
{"frame_context_lines": 5},
231173
id="frame_context_lines_bool_fallback_true",
232174
),
233175
pytest.param(
234-
{"data_collection": {"frame_context_lines": False}},
176+
{"frame_context_lines": False},
235177
{"frame_context_lines": 0},
236178
id="frame_context_lines_bool_fallback_false",
237179
),
238180
pytest.param(
239-
{"data_collection": {"frame_context_lines": 3}},
181+
{"frame_context_lines": 3},
240182
{"frame_context_lines": 3},
241183
id="frame_context_lines_bool_fallback_3",
242184
),
243185
pytest.param(
244-
{"data_collection": {"frame_context_lines": 0}},
186+
{"frame_context_lines": 0},
245187
{"frame_context_lines": 0},
246188
id="frame_context_lines_bool_fallback_0",
247189
),
248190
pytest.param(
249-
{"data_collection": {"stack_frame_variables": True}},
191+
{"stack_frame_variables": True},
250192
{"stack_frame_variables": True},
251193
id="stack_frame_variables_explicit_true",
252194
),
253195
pytest.param(
254-
{"data_collection": {"stack_frame_variables": False}},
196+
{"stack_frame_variables": False},
255197
{"stack_frame_variables": False},
256198
id="stack_frame_variables_explicit_false",
257199
),
258200
pytest.param(
259201
{
260-
"data_collection": {
261-
"stack_frame_variables": {
262-
"mode": "allowlist",
263-
"terms": ["order_id"],
264-
}
202+
"stack_frame_variables": {
203+
"mode": "allowlist",
204+
"terms": ["order_id"],
265205
}
266206
},
267207
{
@@ -273,7 +213,7 @@ def _get(dc, path):
273213
id="stack_frame_variables_allowlist_dict",
274214
),
275215
pytest.param(
276-
{"data_collection": {"stack_frame_variables": {"terms": ["order_id"]}}},
216+
{"stack_frame_variables": {"terms": ["order_id"]}},
277217
{
278218
"stack_frame_variables": {
279219
"mode": "denylist",
@@ -283,64 +223,36 @@ def _get(dc, path):
283223
id="stack_frame_variables_dict_defaults_mode_to_denylist",
284224
),
285225
pytest.param(
286-
{"data_collection": {"stack_frame_variables": {"mode": "off"}}},
226+
{"stack_frame_variables": {"mode": "off"}},
287227
{"stack_frame_variables": {"mode": "off"}},
288228
id="stack_frame_variables_off_dict_omits_terms",
289229
),
290230
pytest.param(
291-
{"data_collection": {"stack_frame_variables": "yes"}},
231+
{"stack_frame_variables": "yes"},
292232
{"stack_frame_variables": True},
293233
id="stack_frame_variables_non_bool_truthy_coerces_to_true",
294234
),
295235
pytest.param(
296-
{"data_collection": {"stack_frame_variables": ""}},
236+
{"stack_frame_variables": ""},
297237
{"stack_frame_variables": False},
298238
id="stack_frame_variables_non_bool_falsy_coerces_to_false",
299239
),
300240
pytest.param(
301-
{"data_collection": {"frame_context_lines": None}},
241+
{"frame_context_lines": None},
302242
{"frame_context_lines": 5},
303243
id="frame_context_lines_none_falls_back_to_spec_default",
304244
),
305245
],
306246
)
307-
def test_initialize_client_data_collection(sentry_init, options, expected):
308-
dc = _initialize_client_with_config(sentry_init, **options)
247+
def test_initialize_client_data_collection(sentry_init, data_collection, expected):
248+
dc = _initialize_client_with_config(sentry_init, data_collection=data_collection)
309249
for path, value in expected.items():
310250
assert _get(dc, path) == value, f"{path} != {value!r}"
311251

312252

313-
def test_initialize_client_data_collection_overrides_send_default_pii_and_warns(
314-
sentry_init,
315-
):
316-
with warnings.catch_warnings(record=True) as caught:
317-
warnings.simplefilter("always")
318-
dc = _initialize_client_with_config(
319-
sentry_init,
320-
send_default_pii=True,
321-
data_collection={"user_info": False},
322-
)
323-
assert dc["user_info"] is False # data_collection wins
324-
assert any(issubclass(w.category, DeprecationWarning) for w in caught)
325-
326-
327253
@pytest.mark.parametrize(
328254
"init_kwargs,expected",
329255
[
330-
pytest.param(
331-
{},
332-
{
333-
"user_info": False,
334-
"provided_by_user": False,
335-
"should_send_default_pii": False,
336-
},
337-
id="defaults_to_no_pii",
338-
),
339-
pytest.param(
340-
{"send_default_pii": True},
341-
{"user_info": True, "provided_by_user": False},
342-
id="send_default_pii_enables_user_info",
343-
),
344256
pytest.param(
345257
{"data_collection": {"user_info": False}},
346258
{"user_info": False, "provided_by_user": True},
@@ -365,10 +277,7 @@ def test_client_data_collection_settings(sentry_init, init_kwargs, expected):
365277
sentry_init(**init_kwargs)
366278
client = sentry_sdk.get_client()
367279
for key, value in expected.items():
368-
if key == "should_send_default_pii":
369-
assert client.should_send_default_pii() is value
370-
else:
371-
assert client.options["data_collection"][key] is value
280+
assert client.options["data_collection"][key] is value
372281

373282

374283
def test_has_data_collection_enabled_gates_on_user_provided_config():
@@ -390,37 +299,23 @@ def test_has_data_collection_enabled_gates_on_user_provided_config():
390299

391300

392301
@pytest.mark.parametrize(
393-
"init_kwargs, expected",
302+
"data_collection, expected",
394303
[
395-
pytest.param({}, False, id="no_config"),
396-
pytest.param({"send_default_pii": True}, False, id="send_default_pii_true"),
397-
pytest.param({"send_default_pii": False}, False, id="send_default_pii_false"),
398-
pytest.param({"data_collection": {}}, True, id="empty_data_collection"),
304+
pytest.param({}, True, id="empty_data_collection"),
399305
pytest.param(
400-
{"data_collection": {"user_info": False}},
306+
{"user_info": False},
401307
True,
402308
id="partial_data_collection",
403309
),
404310
],
405311
)
406312
def test_has_data_collection_enabled_after_resolution(
407-
sentry_init, init_kwargs, expected
313+
sentry_init, data_collection, expected
408314
):
409-
sentry_init(**init_kwargs)
315+
sentry_init(data_collection=data_collection)
410316
assert has_data_collection_enabled(sentry_sdk.get_client().options) is expected
411317

412318

413-
def test_no_data_collection_values_fall_back_to_send_default_pii_configuration(
414-
sentry_init,
415-
):
416-
sentry_init(send_default_pii=True)
417-
client = sentry_sdk.get_client()
418-
dc = client.options["data_collection"]
419-
assert dc["provided_by_user"] is False
420-
assert dc["user_info"] is True
421-
assert has_data_collection_enabled(client.options) is False
422-
423-
424319
def test_data_collection_via_experiments(sentry_init):
425320
sentry_init(
426321
_experiments={"data_collection": {"user_info": True}},

‎tests/test_logs.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,8 @@ def test_auto_flush_logs_after_100(sentry_init, capture_envelopes):
332332

333333

334334
def test_log_user_attributes(sentry_init, capture_items):
335-
"""User attributes are sent if send_default_pii is True."""
336-
sentry_init(send_default_pii=True)
335+
"""User attributes are sent if user_info is True."""
336+
sentry_init(data_collection={"user_info": True})
337337

338338
sentry_sdk.set_user({"id": "1", "email": "test@example.com", "username": "test"})
339339
items = capture_items("log")
@@ -355,7 +355,7 @@ def test_log_user_attributes(sentry_init, capture_items):
355355

356356
def test_log_no_user_attributes_if_no_pii(sentry_init, capture_items):
357357
"""User attributes are not if PII sending is off."""
358-
sentry_init(send_default_pii=False)
358+
sentry_init(data_collection={"user_info": False})
359359

360360
sentry_sdk.set_user({"id": "1", "email": "test@example.com", "username": "test"})
361361
items = capture_items("log")

‎tests/test_metrics.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def test_metrics_with_attributes(sentry_init, capture_items):
6464

6565

6666
def test_metrics_with_user(sentry_init, capture_items):
67-
sentry_init(send_default_pii=True)
67+
sentry_init(data_collection={"user_info": True})
6868
items = capture_items("trace_metric")
6969

7070
sentry_sdk.set_user(
@@ -83,7 +83,7 @@ def test_metrics_with_user(sentry_init, capture_items):
8383

8484

8585
def test_metrics_no_user_if_pii_off(sentry_init, capture_items):
86-
sentry_init(send_default_pii=False)
86+
sentry_init(data_collection={"user_info": False})
8787
items = capture_items("trace_metric")
8888

8989
sentry_sdk.set_user(

0 commit comments

Comments
 (0)