Skip to content

Commit fcfc317

Browse files
emdnetoxrmx
authored andcommitted
add missing tests to urllib3 after semconv migration (open-telemetry#2748)
1 parent 901a3c3 commit fcfc317

File tree

2 files changed

+205
-91
lines changed

2 files changed

+205
-91
lines changed

instrumentation/opentelemetry-instrumentation-urllib3/tests/test_urllib3_integration.py

+46-55
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,6 @@
3636
suppress_instrumentation,
3737
)
3838
from opentelemetry.propagate import get_global_textmap, set_global_textmap
39-
from opentelemetry.semconv.attributes.http_attributes import (
40-
HTTP_REQUEST_METHOD,
41-
HTTP_REQUEST_METHOD_ORIGINAL,
42-
HTTP_RESPONSE_STATUS_CODE,
43-
)
44-
from opentelemetry.semconv.attributes.url_attributes import URL_FULL
45-
from opentelemetry.semconv.trace import SpanAttributes
4639
from opentelemetry.test.mock_textmap import MockTextMapPropagator
4740
from opentelemetry.test.test_base import TestBase
4841
from opentelemetry.trace import Span
@@ -123,24 +116,29 @@ def assert_success_span(
123116
self.assertEqual(
124117
span.status.status_code, trace.status.StatusCode.UNSET
125118
)
126-
attr_old = {
127-
SpanAttributes.HTTP_METHOD: "GET",
128-
SpanAttributes.HTTP_URL: url,
129-
SpanAttributes.HTTP_STATUS_CODE: 200,
119+
expected_attr_old = {
120+
"http.method": "GET",
121+
"http.url": url,
122+
"http.status_code": 200,
130123
}
131124

132-
attr_new = {
133-
HTTP_REQUEST_METHOD: "GET",
134-
URL_FULL: url,
135-
HTTP_RESPONSE_STATUS_CODE: 200,
125+
expected_attr_new = {
126+
"http.request.method": "GET",
127+
"url.full": url,
128+
"http.response.status_code": 200,
136129
}
137130

138131
attributes = {
139-
_HTTPStabilityMode.DEFAULT: attr_old,
140-
_HTTPStabilityMode.HTTP: attr_new,
141-
_HTTPStabilityMode.HTTP_DUP: {**attr_new, **attr_old},
132+
_HTTPStabilityMode.DEFAULT: expected_attr_old,
133+
_HTTPStabilityMode.HTTP: expected_attr_new,
134+
_HTTPStabilityMode.HTTP_DUP: {
135+
**expected_attr_new,
136+
**expected_attr_old,
137+
},
142138
}
143-
self.assertEqual(span.attributes, attributes.get(sem_conv_opt_in_mode))
139+
self.assertDictEqual(
140+
dict(span.attributes), attributes.get(sem_conv_opt_in_mode)
141+
)
144142

145143
def assert_exception_span(
146144
self,
@@ -149,24 +147,29 @@ def assert_exception_span(
149147
):
150148
span = self.assert_span()
151149

152-
attr_old = {
153-
SpanAttributes.HTTP_METHOD: "GET",
154-
SpanAttributes.HTTP_URL: url,
150+
expected_attr_old = {
151+
"http.method": "GET",
152+
"http.url": url,
155153
}
156154

157-
attr_new = {
158-
HTTP_REQUEST_METHOD: "GET",
159-
URL_FULL: url,
155+
expected_attr_new = {
156+
"http.request.method": "GET",
157+
"url.full": url,
160158
# TODO: Add `error.type` attribute when supported
161159
}
162160

163161
attributes = {
164-
_HTTPStabilityMode.DEFAULT: attr_old,
165-
_HTTPStabilityMode.HTTP: attr_new,
166-
_HTTPStabilityMode.HTTP_DUP: {**attr_new, **attr_old},
162+
_HTTPStabilityMode.DEFAULT: expected_attr_old,
163+
_HTTPStabilityMode.HTTP: expected_attr_new,
164+
_HTTPStabilityMode.HTTP_DUP: {
165+
**expected_attr_new,
166+
**expected_attr_old,
167+
},
167168
}
168169

169-
self.assertEqual(span.attributes, attributes.get(sem_conv_opt_in_mode))
170+
self.assertDictEqual(
171+
dict(span.attributes), attributes.get(sem_conv_opt_in_mode)
172+
)
170173
self.assertEqual(
171174
trace.status.StatusCode.ERROR, span.status.status_code
172175
)
@@ -265,9 +268,7 @@ def test_basic_not_found(self):
265268
self.assertEqual(404, response.status)
266269

267270
span = self.assert_span()
268-
self.assertEqual(
269-
404, span.attributes.get(SpanAttributes.HTTP_STATUS_CODE)
270-
)
271+
self.assertEqual(404, span.attributes.get("http.status_code"))
271272
self.assertIs(trace.status.StatusCode.ERROR, span.status.status_code)
272273

273274
def test_basic_not_found_new_semconv(self):
@@ -278,7 +279,7 @@ def test_basic_not_found_new_semconv(self):
278279
self.assertEqual(404, response.status)
279280

280281
span = self.assert_span()
281-
self.assertEqual(404, span.attributes.get(HTTP_RESPONSE_STATUS_CODE))
282+
self.assertEqual(404, span.attributes.get("http.response.status_code"))
282283
self.assertIs(trace.status.StatusCode.ERROR, span.status.status_code)
283284

284285
def test_basic_not_found_both_semconv(self):
@@ -289,10 +290,8 @@ def test_basic_not_found_both_semconv(self):
289290
self.assertEqual(404, response.status)
290291

291292
span = self.assert_span()
292-
self.assertEqual(404, span.attributes.get(HTTP_RESPONSE_STATUS_CODE))
293-
self.assertEqual(
294-
404, span.attributes.get(SpanAttributes.HTTP_STATUS_CODE)
295-
)
293+
self.assertEqual(404, span.attributes.get("http.response.status_code"))
294+
self.assertEqual(404, span.attributes.get("http.status_code"))
296295
self.assertIs(trace.status.StatusCode.ERROR, span.status.status_code)
297296

298297
@mock.patch("httpretty.http.HttpBaseClass.METHODS", ("NONSTANDARD",))
@@ -303,12 +302,8 @@ def test_nonstandard_http_method(self):
303302
self.perform_request(self.HTTP_URL, method="NONSTANDARD")
304303
span = self.assert_span()
305304
self.assertEqual("HTTP", span.name)
306-
self.assertEqual(
307-
span.attributes.get(SpanAttributes.HTTP_METHOD), "_OTHER"
308-
)
309-
self.assertEqual(
310-
span.attributes.get(SpanAttributes.HTTP_STATUS_CODE), 405
311-
)
305+
self.assertEqual(span.attributes.get("http.method"), "_OTHER")
306+
self.assertEqual(span.attributes.get("http.status_code"), 405)
312307

313308
@mock.patch("httpretty.http.HttpBaseClass.METHODS", ("NONSTANDARD",))
314309
def test_nonstandard_http_method_new_semconv(self):
@@ -318,11 +313,11 @@ def test_nonstandard_http_method_new_semconv(self):
318313
self.perform_request(self.HTTP_URL, method="NONSTANDARD")
319314
span = self.assert_span()
320315
self.assertEqual("HTTP", span.name)
321-
self.assertEqual(span.attributes.get(HTTP_REQUEST_METHOD), "_OTHER")
316+
self.assertEqual(span.attributes.get("http.request.method"), "_OTHER")
322317
self.assertEqual(
323-
span.attributes.get(HTTP_REQUEST_METHOD_ORIGINAL), "NONSTANDARD"
318+
span.attributes.get("http.request.method_original"), "NONSTANDARD"
324319
)
325-
self.assertEqual(span.attributes.get(HTTP_RESPONSE_STATUS_CODE), 405)
320+
self.assertEqual(span.attributes.get("http.response.status_code"), 405)
326321

327322
@mock.patch("httpretty.http.HttpBaseClass.METHODS", ("NONSTANDARD",))
328323
def test_nonstandard_http_method_both_semconv(self):
@@ -332,17 +327,13 @@ def test_nonstandard_http_method_both_semconv(self):
332327
self.perform_request(self.HTTP_URL, method="NONSTANDARD")
333328
span = self.assert_span()
334329
self.assertEqual("HTTP", span.name)
330+
self.assertEqual(span.attributes.get("http.method"), "_OTHER")
331+
self.assertEqual(span.attributes.get("http.status_code"), 405)
332+
self.assertEqual(span.attributes.get("http.request.method"), "_OTHER")
335333
self.assertEqual(
336-
span.attributes.get(SpanAttributes.HTTP_METHOD), "_OTHER"
337-
)
338-
self.assertEqual(
339-
span.attributes.get(SpanAttributes.HTTP_STATUS_CODE), 405
340-
)
341-
self.assertEqual(span.attributes.get(HTTP_REQUEST_METHOD), "_OTHER")
342-
self.assertEqual(
343-
span.attributes.get(HTTP_REQUEST_METHOD_ORIGINAL), "NONSTANDARD"
334+
span.attributes.get("http.request.method_original"), "NONSTANDARD"
344335
)
345-
self.assertEqual(span.attributes.get(HTTP_RESPONSE_STATUS_CODE), 405)
336+
self.assertEqual(span.attributes.get("http.response.status_code"), 405)
346337

347338
def test_basic_http_non_default_port(self):
348339
url = "http://mock:666/status/200"

0 commit comments

Comments
 (0)