Skip to content

Commit f642dd3

Browse files
.
1 parent 768e5df commit f642dd3

File tree

5 files changed

+176
-116
lines changed

5 files changed

+176
-116
lines changed

tests/integrations/bottle/test_bottle.py

Lines changed: 57 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from io import BytesIO
66
from bottle import Bottle, debug as set_debug, abort, redirect, HTTPResponse
77
from sentry_sdk import capture_message
8-
from sentry_sdk.consts import DEFAULT_MAX_VALUE_LENGTH
98
from sentry_sdk.integrations.bottle import BottleIntegration
109
from sentry_sdk.serializer import MAX_DATABAG_BREADTH
1110

@@ -121,10 +120,17 @@ def index():
121120
assert event["exception"]["values"][0]["mechanism"]["handled"] is False
122121

123122

124-
def test_large_json_request(sentry_init, capture_events, app, get_client):
125-
sentry_init(integrations=[BottleIntegration()], max_request_body_size="always")
123+
@pytest.mark.parametrize("max_value_length", [1024, None])
124+
def test_large_json_request(
125+
sentry_init, capture_events, app, get_client, max_value_length
126+
):
127+
sentry_init(
128+
integrations=[BottleIntegration()],
129+
max_request_body_size="always",
130+
max_value_length=max_value_length,
131+
)
126132

127-
data = {"foo": {"bar": "a" * (DEFAULT_MAX_VALUE_LENGTH + 10)}}
133+
data = {"foo": {"bar": "a" * (1034)}}
128134

129135
@app.route("/", method="POST")
130136
def index():
@@ -144,15 +150,17 @@ def index():
144150
assert response[1] == "200 OK"
145151

146152
(event,) = events
147-
assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
148-
"": {
149-
"len": DEFAULT_MAX_VALUE_LENGTH + 10,
150-
"rem": [
151-
["!limit", "x", DEFAULT_MAX_VALUE_LENGTH - 3, DEFAULT_MAX_VALUE_LENGTH]
152-
],
153+
154+
if max_value_length:
155+
assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
156+
"": {
157+
"len": 1034,
158+
"rem": [["!limit", "x", 1021, 1024]],
159+
}
153160
}
154-
}
155-
assert len(event["request"]["data"]["foo"]["bar"]) == DEFAULT_MAX_VALUE_LENGTH
161+
assert len(event["request"]["data"]["foo"]["bar"]) == 1024
162+
else:
163+
assert len(event["request"]["data"]["foo"]["bar"]) == 1034
156164

157165

158166
@pytest.mark.parametrize("data", [{}, []], ids=["empty-dict", "empty-list"])
@@ -179,10 +187,17 @@ def index():
179187
assert event["request"]["data"] == data
180188

181189

182-
def test_medium_formdata_request(sentry_init, capture_events, app, get_client):
183-
sentry_init(integrations=[BottleIntegration()], max_request_body_size="always")
190+
@pytest.mark.parametrize("max_value_length", [1024, None])
191+
def test_medium_formdata_request(
192+
sentry_init, capture_events, app, get_client, max_value_length
193+
):
194+
sentry_init(
195+
integrations=[BottleIntegration()],
196+
max_request_body_size="always",
197+
max_value_length=max_value_length,
198+
)
184199

185-
data = {"foo": "a" * (DEFAULT_MAX_VALUE_LENGTH + 10)}
200+
data = {"foo": "a" * (1034)}
186201

187202
@app.route("/", method="POST")
188203
def index():
@@ -199,15 +214,17 @@ def index():
199214
assert response[1] == "200 OK"
200215

201216
(event,) = events
202-
assert event["_meta"]["request"]["data"]["foo"] == {
203-
"": {
204-
"len": DEFAULT_MAX_VALUE_LENGTH + 10,
205-
"rem": [
206-
["!limit", "x", DEFAULT_MAX_VALUE_LENGTH - 3, DEFAULT_MAX_VALUE_LENGTH]
207-
],
217+
218+
if max_value_length:
219+
assert event["_meta"]["request"]["data"]["foo"] == {
220+
"": {
221+
"len": 1034,
222+
"rem": [["!limit", "x", 1021, 1024]],
223+
}
208224
}
209-
}
210-
assert len(event["request"]["data"]["foo"]) == DEFAULT_MAX_VALUE_LENGTH
225+
assert len(event["request"]["data"]["foo"]) == 1024
226+
else:
227+
assert len(event["request"]["data"]["foo"]) == 1034
211228

212229

213230
@pytest.mark.parametrize("input_char", ["a", b"a"])
@@ -241,11 +258,16 @@ def index():
241258
assert not event["request"]["data"]
242259

243260

244-
def test_files_and_form(sentry_init, capture_events, app, get_client):
245-
sentry_init(integrations=[BottleIntegration()], max_request_body_size="always")
261+
@pytest.mark.parametrize("max_value_length", [1024, None])
262+
def test_files_and_form(sentry_init, capture_events, app, get_client, max_value_length):
263+
sentry_init(
264+
integrations=[BottleIntegration()],
265+
max_request_body_size="always",
266+
max_value_length=max_value_length,
267+
)
246268

247269
data = {
248-
"foo": "a" * (DEFAULT_MAX_VALUE_LENGTH + 10),
270+
"foo": "a" * (1034),
249271
"file": (BytesIO(b"hello"), "hello.txt"),
250272
}
251273

@@ -266,15 +288,16 @@ def index():
266288
assert response[1] == "200 OK"
267289

268290
(event,) = events
269-
assert event["_meta"]["request"]["data"]["foo"] == {
270-
"": {
271-
"len": DEFAULT_MAX_VALUE_LENGTH + 10,
272-
"rem": [
273-
["!limit", "x", DEFAULT_MAX_VALUE_LENGTH - 3, DEFAULT_MAX_VALUE_LENGTH]
274-
],
291+
if max_value_length:
292+
assert event["_meta"]["request"]["data"]["foo"] == {
293+
"": {
294+
"len": 1034,
295+
"rem": [["!limit", "x", 1021, 1024]],
296+
}
275297
}
276-
}
277-
assert len(event["request"]["data"]["foo"]) == DEFAULT_MAX_VALUE_LENGTH
298+
assert len(event["request"]["data"]["foo"]) == 1024
299+
else:
300+
assert len(event["request"]["data"]["foo"]) == 1034
278301

279302
assert event["_meta"]["request"]["data"]["file"] == {
280303
"": {

tests/integrations/falcon/test_falcon.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import falcon
66
import falcon.testing
77
import sentry_sdk
8-
from sentry_sdk.consts import DEFAULT_MAX_VALUE_LENGTH
98
from sentry_sdk.integrations.falcon import FalconIntegration
109
from sentry_sdk.integrations.logging import LoggingIntegration
1110
from sentry_sdk.utils import parse_version
@@ -207,10 +206,15 @@ def on_get(self, req, resp):
207206
assert len(events) == 0
208207

209208

210-
def test_falcon_large_json_request(sentry_init, capture_events):
211-
sentry_init(integrations=[FalconIntegration()], max_request_body_size="always")
209+
@pytest.mark.parametrize("max_value_length", [1024, None])
210+
def test_falcon_large_json_request(sentry_init, capture_events, max_value_length):
211+
sentry_init(
212+
integrations=[FalconIntegration()],
213+
max_request_body_size="always",
214+
max_value_length=max_value_length,
215+
)
212216

213-
data = {"foo": {"bar": "a" * (DEFAULT_MAX_VALUE_LENGTH + 10)}}
217+
data = {"foo": {"bar": "a" * (1034)}}
214218

215219
class Resource:
216220
def on_post(self, req, resp):
@@ -228,15 +232,16 @@ def on_post(self, req, resp):
228232
assert response.status == falcon.HTTP_200
229233

230234
(event,) = events
231-
assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
232-
"": {
233-
"len": DEFAULT_MAX_VALUE_LENGTH + 10,
234-
"rem": [
235-
["!limit", "x", DEFAULT_MAX_VALUE_LENGTH - 3, DEFAULT_MAX_VALUE_LENGTH]
236-
],
235+
if max_value_length:
236+
assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
237+
"": {
238+
"len": 1034,
239+
"rem": [["!limit", "x", 1021, 1024]],
240+
}
237241
}
238-
}
239-
assert len(event["request"]["data"]["foo"]["bar"]) == DEFAULT_MAX_VALUE_LENGTH
242+
assert len(event["request"]["data"]["foo"]["bar"]) == 1024
243+
else:
244+
assert len(event["request"]["data"]["foo"]["bar"]) == 1034
240245

241246

242247
@pytest.mark.parametrize("data", [{}, []], ids=["empty-dict", "empty-list"])

tests/integrations/flask/test_flask.py

Lines changed: 47 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
capture_message,
2828
capture_exception,
2929
)
30-
from sentry_sdk.consts import DEFAULT_MAX_VALUE_LENGTH
3130
from sentry_sdk.integrations.logging import LoggingIntegration
3231
from sentry_sdk.serializer import MAX_DATABAG_BREADTH
3332

@@ -248,12 +247,15 @@ def login():
248247
assert event["user"]["id"] == str(user_id)
249248

250249

251-
def test_flask_large_json_request(sentry_init, capture_events, app):
250+
@pytest.mark.parametrize("max_value_length", [1024, None])
251+
def test_flask_large_json_request(sentry_init, capture_events, app, max_value_length):
252252
sentry_init(
253-
integrations=[flask_sentry.FlaskIntegration()], max_request_body_size="always"
253+
integrations=[flask_sentry.FlaskIntegration()],
254+
max_request_body_size="always",
255+
max_value_length=max_value_length,
254256
)
255257

256-
data = {"foo": {"bar": "a" * (DEFAULT_MAX_VALUE_LENGTH + 10)}}
258+
data = {"foo": {"bar": "a" * (1034)}}
257259

258260
@app.route("/", methods=["POST"])
259261
def index():
@@ -270,15 +272,16 @@ def index():
270272
assert response.status_code == 200
271273

272274
(event,) = events
273-
assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
274-
"": {
275-
"len": DEFAULT_MAX_VALUE_LENGTH + 10,
276-
"rem": [
277-
["!limit", "x", DEFAULT_MAX_VALUE_LENGTH - 3, DEFAULT_MAX_VALUE_LENGTH]
278-
],
275+
if max_value_length:
276+
assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
277+
"": {
278+
"len": 1034,
279+
"rem": [["!limit", "x", 1021, 1024]],
280+
}
279281
}
280-
}
281-
assert len(event["request"]["data"]["foo"]["bar"]) == DEFAULT_MAX_VALUE_LENGTH
282+
assert len(event["request"]["data"]["foo"]["bar"]) == 1024
283+
else:
284+
assert len(event["request"]["data"]["foo"]["bar"]) == 1034
282285

283286

284287
def test_flask_session_tracking(sentry_init, capture_envelopes, app):
@@ -343,12 +346,17 @@ def index():
343346
assert event["request"]["data"] == data
344347

345348

346-
def test_flask_medium_formdata_request(sentry_init, capture_events, app):
349+
@pytest.mark.parametrize("max_value_length", [1024, None])
350+
def test_flask_medium_formdata_request(
351+
sentry_init, capture_events, app, max_value_length
352+
):
347353
sentry_init(
348-
integrations=[flask_sentry.FlaskIntegration()], max_request_body_size="always"
354+
integrations=[flask_sentry.FlaskIntegration()],
355+
max_request_body_size="always",
356+
max_value_length=max_value_length,
349357
)
350358

351-
data = {"foo": "a" * (DEFAULT_MAX_VALUE_LENGTH + 10)}
359+
data = {"foo": "a" * (1034)}
352360

353361
@app.route("/", methods=["POST"])
354362
def index():
@@ -369,15 +377,16 @@ def index():
369377
assert response.status_code == 200
370378

371379
(event,) = events
372-
assert event["_meta"]["request"]["data"]["foo"] == {
373-
"": {
374-
"len": DEFAULT_MAX_VALUE_LENGTH + 10,
375-
"rem": [
376-
["!limit", "x", DEFAULT_MAX_VALUE_LENGTH - 3, DEFAULT_MAX_VALUE_LENGTH]
377-
],
380+
if max_value_length:
381+
assert event["_meta"]["request"]["data"]["foo"] == {
382+
"": {
383+
"len": 1034,
384+
"rem": [["!limit", "x", 1021, 1024]],
385+
}
378386
}
379-
}
380-
assert len(event["request"]["data"]["foo"]) == DEFAULT_MAX_VALUE_LENGTH
387+
assert len(event["request"]["data"]["foo"]) == 1024
388+
else:
389+
assert len(event["request"]["data"]["foo"]) == 1034
381390

382391

383392
def test_flask_formdata_request_appear_transaction_body(
@@ -451,13 +460,16 @@ def index():
451460
assert not event["request"]["data"]
452461

453462

454-
def test_flask_files_and_form(sentry_init, capture_events, app):
463+
@pytest.mark.parametrize("max_value_length", [1024, None])
464+
def test_flask_files_and_form(sentry_init, capture_events, app, max_value_length):
455465
sentry_init(
456-
integrations=[flask_sentry.FlaskIntegration()], max_request_body_size="always"
466+
integrations=[flask_sentry.FlaskIntegration()],
467+
max_request_body_size="always",
468+
max_value_length=max_value_length,
457469
)
458470

459471
data = {
460-
"foo": "a" * (DEFAULT_MAX_VALUE_LENGTH + 10),
472+
"foo": "a" * (1034),
461473
"file": (BytesIO(b"hello"), "hello.txt"),
462474
}
463475

@@ -480,15 +492,16 @@ def index():
480492
assert response.status_code == 200
481493

482494
(event,) = events
483-
assert event["_meta"]["request"]["data"]["foo"] == {
484-
"": {
485-
"len": DEFAULT_MAX_VALUE_LENGTH + 10,
486-
"rem": [
487-
["!limit", "x", DEFAULT_MAX_VALUE_LENGTH - 3, DEFAULT_MAX_VALUE_LENGTH]
488-
],
495+
if max_value_length:
496+
assert event["_meta"]["request"]["data"]["foo"] == {
497+
"": {
498+
"len": 1034,
499+
"rem": [["!limit", "x", 1021, 1024]],
500+
}
489501
}
490-
}
491-
assert len(event["request"]["data"]["foo"]) == DEFAULT_MAX_VALUE_LENGTH
502+
assert len(event["request"]["data"]["foo"]) == 1024
503+
else:
504+
assert len(event["request"]["data"]["foo"]) == 1034
492505

493506
assert event["_meta"]["request"]["data"]["file"] == {"": {"rem": [["!raw", "x"]]}}
494507
assert not event["request"]["data"]["file"]

0 commit comments

Comments
 (0)