Remove sorting where order is now stable (#2658) · gitcommit90/sentry-python@ce549ca · GitHub
Skip to content

Commit ce549ca

Browse files
authored
Remove sorting where order is now stable (getsentry#2658)
1 parent 8eaaece commit ce549ca

8 files changed

Lines changed: 47 additions & 67 deletions

File tree

tests/integrations/django/test_basic.py

Lines changed: 1 addition & 2 deletions

tests/integrations/flask/test_flask.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -862,9 +862,8 @@ def index():
862862
assert match is not None
863863
assert match.group(1) == traceparent
864864

865-
# Python 2 does not preserve sort order
866865
rendered_baggage = match.group(2)
867-
assert sorted(rendered_baggage.split(",")) == sorted(baggage.split(","))
866+
assert rendered_baggage == baggage
868867

869868

870869
def test_dont_override_sentry_trace_context(sentry_init, app):

tests/integrations/starlette/test_starlette.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -948,9 +948,8 @@ def test_template_tracing_meta(sentry_init, capture_events):
948948
assert match is not None
949949
assert match.group(1) == traceparent
950950

951-
# Python 2 does not preserve sort order
952951
rendered_baggage = match.group(2)
953-
assert sorted(rendered_baggage.split(",")) == sorted(baggage.split(","))
952+
assert rendered_baggage == baggage
954953

955954

956955
@pytest.mark.parametrize(

tests/integrations/stdlib/test_httplib.py

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -182,17 +182,15 @@ def test_outgoing_trace_headers(sentry_init, monkeypatch):
182182
)
183183
assert request_headers["sentry-trace"] == expected_sentry_trace
184184

185-
expected_outgoing_baggage_items = [
186-
"sentry-trace_id=771a43a4192642f0b136d5159a501700",
187-
"sentry-public_key=49d0f7386ad645858ae85020e393bef3",
188-
"sentry-sample_rate=0.01337",
189-
"sentry-user_id=Am%C3%A9lie",
190-
]
191-
192-
assert sorted(request_headers["baggage"].split(",")) == sorted(
193-
expected_outgoing_baggage_items
185+
expected_outgoing_baggage = (
186+
"sentry-trace_id=771a43a4192642f0b136d5159a501700,"
187+
"sentry-public_key=49d0f7386ad645858ae85020e393bef3,"
188+
"sentry-sample_rate=0.01337,"
189+
"sentry-user_id=Am%C3%A9lie"
194190
)
195191

192+
assert request_headers["baggage"] == expected_outgoing_baggage
193+
196194

197195
def test_outgoing_trace_headers_head_sdk(sentry_init, monkeypatch):
198196
# HTTPSConnection.send is passed a string containing (among other things)
@@ -225,17 +223,15 @@ def test_outgoing_trace_headers_head_sdk(sentry_init, monkeypatch):
225223
)
226224
assert request_headers["sentry-trace"] == expected_sentry_trace
227225

228-
expected_outgoing_baggage_items = [
229-
"sentry-trace_id=%s" % transaction.trace_id,
230-
"sentry-sample_rate=0.5",
231-
"sentry-sampled=%s" % "true" if transaction.sampled else "false",
232-
"sentry-release=foo",
233-
"sentry-environment=production",
234-
]
226+
expected_outgoing_baggage = (
227+
"sentry-trace_id=%s,"
228+
"sentry-environment=production,"
229+
"sentry-release=foo,"
230+
"sentry-sample_rate=0.5,"
231+
"sentry-sampled=%s"
232+
) % (transaction.trace_id, "true" if transaction.sampled else "false")
235233

236-
assert sorted(request_headers["baggage"].split(",")) == sorted(
237-
expected_outgoing_baggage_items
238-
)
234+
assert request_headers["baggage"] == expected_outgoing_baggage
239235

240236

241237
@pytest.mark.parametrize(

tests/test_api.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ def test_baggage_with_tracing_disabled(sentry_init):
7676
propagation_context["trace_id"]
7777
)
7878
)
79-
# order not guaranteed in older python versions
80-
assert sorted(get_baggage().split(",")) == sorted(expected_baggage.split(","))
79+
assert get_baggage() == expected_baggage
8180

8281

8382
def test_baggage_with_tracing_enabled(sentry_init):
@@ -86,8 +85,7 @@ def test_baggage_with_tracing_enabled(sentry_init):
8685
expected_baggage = "sentry-trace_id={},sentry-environment=dev,sentry-release=1.0.0,sentry-sample_rate=1.0,sentry-sampled={}".format(
8786
transaction.trace_id, "true" if transaction.sampled else "false"
8887
)
89-
# order not guaranteed in older python versions
90-
assert sorted(get_baggage().split(",")) == sorted(expected_baggage.split(","))
88+
assert get_baggage() == expected_baggage
9189

9290

9391
def test_continue_trace(sentry_init):

tests/test_utils.py

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,7 @@ def _normalize_distribution_name(name):
8989
],
9090
)
9191
def test_sanitize_url(url, expected_result):
92-
# sort parts because old Python versions (<3.6) don't preserve order
93-
sanitized_url = sanitize_url(url)
94-
parts = sorted(re.split(r"\&|\?|\#", sanitized_url))
95-
expected_parts = sorted(re.split(r"\&|\?|\#", expected_result))
96-
97-
assert parts == expected_parts
92+
assert sanitize_url(url) == expected_result
9893

9994

10095
@pytest.mark.parametrize(
@@ -208,13 +203,10 @@ def test_sanitize_url(url, expected_result):
208203
)
209204
def test_sanitize_url_and_split(url, expected_result):
210205
sanitized_url = sanitize_url(url, split=True)
211-
# sort query because old Python versions (<3.6) don't preserve order
212-
query = sorted(sanitized_url.query.split("&"))
213-
expected_query = sorted(expected_result.query.split("&"))
214206

215207
assert sanitized_url.scheme == expected_result.scheme
216208
assert sanitized_url.netloc == expected_result.netloc
217-
assert query == expected_query
209+
assert sanitized_url.query == expected_result.query
218210
assert sanitized_url.path == expected_result.path
219211
assert sanitized_url.fragment == expected_result.fragment
220212

@@ -341,13 +333,7 @@ def test_sanitize_url_and_split(url, expected_result):
341333
def test_parse_url(url, sanitize, expected_url, expected_query, expected_fragment):
342334
assert parse_url(url, sanitize=sanitize).url == expected_url
343335
assert parse_url(url, sanitize=sanitize).fragment == expected_fragment
344-
345-
# sort parts because old Python versions (<3.6) don't preserve order
346-
sanitized_query = parse_url(url, sanitize=sanitize).query
347-
query_parts = sorted(re.split(r"\&|\?|\#", sanitized_query))
348-
expected_query_parts = sorted(re.split(r"\&|\?|\#", expected_query))
349-
350-
assert query_parts == expected_query_parts
336+
assert parse_url(url, sanitize=sanitize).query == expected_query
351337

352338

353339
@pytest.mark.parametrize(

tests/tracing/test_baggage.py

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ def test_third_party_baggage():
77

88
assert baggage.mutable
99
assert baggage.sentry_items == {}
10-
assert sorted(baggage.third_party_items.split(",")) == sorted(
11-
"other-vendor-value-1=foo;bar;baz,other-vendor-value-2=foo;bar;".split(",")
10+
assert (
11+
baggage.third_party_items
12+
== "other-vendor-value-1=foo;bar;baz,other-vendor-value-2=foo;bar;"
1213
)
1314

1415
assert baggage.dynamic_sampling_context() == {}
1516
assert baggage.serialize() == ""
16-
assert sorted(baggage.serialize(include_third_party=True).split(",")) == sorted(
17-
"other-vendor-value-1=foo;bar;baz,other-vendor-value-2=foo;bar;".split(",")
17+
assert (
18+
baggage.serialize(include_third_party=True)
19+
== "other-vendor-value-1=foo;bar;baz,other-vendor-value-2=foo;bar;"
1820
)
1921

2022

@@ -50,22 +52,18 @@ def test_mixed_baggage():
5052
"foo": "bar",
5153
}
5254

53-
assert sorted(baggage.serialize().split(",")) == sorted(
54-
(
55-
"sentry-trace_id=771a43a4192642f0b136d5159a501700,"
56-
"sentry-public_key=49d0f7386ad645858ae85020e393bef3,"
57-
"sentry-sample_rate=0.01337,sentry-user_id=Am%C3%A9lie,"
58-
"sentry-foo=bar"
59-
).split(",")
55+
assert baggage.serialize() == (
56+
"sentry-trace_id=771a43a4192642f0b136d5159a501700,"
57+
"sentry-public_key=49d0f7386ad645858ae85020e393bef3,"
58+
"sentry-sample_rate=0.01337,sentry-user_id=Am%C3%A9lie,"
59+
"sentry-foo=bar"
6060
)
6161

62-
assert sorted(baggage.serialize(include_third_party=True).split(",")) == sorted(
63-
(
64-
"sentry-trace_id=771a43a4192642f0b136d5159a501700,"
65-
"sentry-public_key=49d0f7386ad645858ae85020e393bef3,"
66-
"sentry-sample_rate=0.01337,sentry-user_id=Am%C3%A9lie,sentry-foo=bar,"
67-
"other-vendor-value-1=foo;bar;baz,other-vendor-value-2=foo;bar;"
68-
).split(",")
62+
assert baggage.serialize(include_third_party=True) == (
63+
"sentry-trace_id=771a43a4192642f0b136d5159a501700,"
64+
"sentry-public_key=49d0f7386ad645858ae85020e393bef3,"
65+
"sentry-sample_rate=0.01337,sentry-user_id=Am%C3%A9lie,sentry-foo=bar,"
66+
"other-vendor-value-1=foo;bar;baz,other-vendor-value-2=foo;bar;"
6967
)
7068

7169

tests/tracing/test_integration_tests.py

Lines changed: 8 additions & 3 deletions

0 commit comments

Comments
 (0)