Skip to content

Commit 8df6a6d

Browse files
committed
fix: remove deprecated span attributes
1 parent 27f63e2 commit 8df6a6d

File tree

1 file changed

+75
-75
lines changed

1 file changed

+75
-75
lines changed

instrumentation/opentelemetry-instrumentation-httpx/tests/test_httpx_integration.py

Lines changed: 75 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,18 @@
3939
from opentelemetry.instrumentation.utils import suppress_http_instrumentation
4040
from opentelemetry.propagate import get_global_textmap, set_global_textmap
4141
from opentelemetry.sdk import resources
42+
from opentelemetry.semconv._incubating.attributes.http_attributes import (
43+
HTTP_FLAVOR,
44+
HTTP_HOST,
45+
HTTP_METHOD,
46+
HTTP_SCHEME,
47+
HTTP_STATUS_CODE,
48+
HTTP_URL,
49+
)
50+
from opentelemetry.semconv._incubating.attributes.net_attributes import (
51+
NET_PEER_NAME,
52+
NET_PEER_PORT,
53+
)
4254
from opentelemetry.semconv.attributes.error_attributes import ERROR_TYPE
4355
from opentelemetry.semconv.attributes.http_attributes import (
4456
HTTP_REQUEST_METHOD,
@@ -55,7 +67,6 @@
5567
SERVER_PORT,
5668
)
5769
from opentelemetry.semconv.attributes.url_attributes import URL_FULL
58-
from opentelemetry.semconv.trace import SpanAttributes
5970
from opentelemetry.test.mock_textmap import MockTextMapPropagator
6071
from opentelemetry.test.test_base import TestBase
6172
from opentelemetry.trace import StatusCode
@@ -76,6 +87,7 @@
7687

7788

7889
HTTP_RESPONSE_BODY = "http.response.body"
90+
SCHEMA_URL = "https://opentelemetry.io/schemas/1.21.0"
7991

8092

8193
def _is_url_tuple(request: "RequestInfo"):
@@ -216,9 +228,9 @@ def test_basic(self):
216228
self.assertEqual(
217229
dict(span.attributes),
218230
{
219-
SpanAttributes.HTTP_METHOD: "GET",
220-
SpanAttributes.HTTP_URL: self.URL,
221-
SpanAttributes.HTTP_STATUS_CODE: 200,
231+
HTTP_METHOD: "GET",
232+
HTTP_URL: self.URL,
233+
HTTP_STATUS_CODE: 200,
222234
},
223235
)
224236

@@ -237,9 +249,9 @@ def test_basic_metrics(self):
237249
self.assertEqual(
238250
dict(duration_data_point.attributes),
239251
{
240-
SpanAttributes.HTTP_STATUS_CODE: 200,
241-
SpanAttributes.HTTP_METHOD: "GET",
242-
SpanAttributes.HTTP_SCHEME: "http",
252+
HTTP_STATUS_CODE: 200,
253+
HTTP_METHOD: "GET",
254+
HTTP_SCHEME: "http",
243255
},
244256
)
245257
self.assertEqual(duration_data_point.count, 1)
@@ -263,9 +275,9 @@ def test_nonstandard_http_method(self):
263275
self.assertEqual(
264276
dict(span.attributes),
265277
{
266-
SpanAttributes.HTTP_METHOD: "_OTHER",
267-
SpanAttributes.HTTP_URL: self.URL,
268-
SpanAttributes.HTTP_STATUS_CODE: 405,
278+
HTTP_METHOD: "_OTHER",
279+
HTTP_URL: self.URL,
280+
HTTP_STATUS_CODE: 405,
269281
},
270282
)
271283

@@ -282,9 +294,9 @@ def test_nonstandard_http_method(self):
282294
self.assertEqual(
283295
dict(duration_data_point.attributes),
284296
{
285-
SpanAttributes.HTTP_STATUS_CODE: 405,
286-
SpanAttributes.HTTP_METHOD: "_OTHER",
287-
SpanAttributes.HTTP_SCHEME: "http",
297+
HTTP_STATUS_CODE: 405,
298+
HTTP_METHOD: "_OTHER",
299+
HTTP_SCHEME: "http",
288300
},
289301
)
290302

@@ -354,7 +366,7 @@ def test_basic_new_semconv(self):
354366

355367
self.assertEqual(
356368
span.instrumentation_scope.schema_url,
357-
SpanAttributes.SCHEMA_URL,
369+
SCHEMA_URL,
358370
)
359371
self.assertEqual(
360372
dict(span.attributes),
@@ -404,23 +416,23 @@ def test_basic_both_semconv(self):
404416

405417
self.assertEqual(
406418
span.instrumentation_scope.schema_url,
407-
SpanAttributes.SCHEMA_URL,
419+
SCHEMA_URL,
408420
)
409421

410422
self.assertEqual(
411423
dict(span.attributes),
412424
{
413-
SpanAttributes.HTTP_METHOD: "GET",
425+
HTTP_METHOD: "GET",
414426
HTTP_REQUEST_METHOD: "GET",
415-
SpanAttributes.HTTP_URL: url,
427+
HTTP_URL: url,
416428
URL_FULL: url,
417-
SpanAttributes.HTTP_HOST: "mock",
429+
HTTP_HOST: "mock",
418430
SERVER_ADDRESS: "mock",
419431
NETWORK_PEER_ADDRESS: "mock",
420-
SpanAttributes.NET_PEER_PORT: 8080,
421-
SpanAttributes.HTTP_STATUS_CODE: 200,
432+
NET_PEER_PORT: 8080,
433+
HTTP_STATUS_CODE: 200,
422434
HTTP_RESPONSE_STATUS_CODE: 200,
423-
SpanAttributes.HTTP_FLAVOR: "1.1",
435+
HTTP_FLAVOR: "1.1",
424436
NETWORK_PROTOCOL_VERSION: "1.1",
425437
SERVER_PORT: 8080,
426438
NETWORK_PEER_PORT: 8080,
@@ -440,13 +452,13 @@ def test_basic_both_semconv(self):
440452
self.assertEqual(
441453
dict(metrics[0].data.data_points[0].attributes),
442454
{
443-
SpanAttributes.HTTP_FLAVOR: "1.1",
444-
SpanAttributes.HTTP_HOST: "mock",
445-
SpanAttributes.HTTP_METHOD: "GET",
446-
SpanAttributes.HTTP_SCHEME: "http",
447-
SpanAttributes.NET_PEER_NAME: "mock",
448-
SpanAttributes.NET_PEER_PORT: 8080,
449-
SpanAttributes.HTTP_STATUS_CODE: 200,
455+
HTTP_FLAVOR: "1.1",
456+
HTTP_HOST: "mock",
457+
HTTP_METHOD: "GET",
458+
HTTP_SCHEME: "http",
459+
NET_PEER_NAME: "mock",
460+
NET_PEER_PORT: 8080,
461+
HTTP_STATUS_CODE: 200,
450462
},
451463
)
452464
self.assertEqual(metrics[0].name, "http.client.duration")
@@ -477,9 +489,7 @@ def test_not_foundbasic(self):
477489

478490
self.assertEqual(result.status_code, 404)
479491
span = self.assert_span()
480-
self.assertEqual(
481-
span.attributes.get(SpanAttributes.HTTP_STATUS_CODE), 404
482-
)
492+
self.assertEqual(span.attributes.get(HTTP_STATUS_CODE), 404)
483493
self.assertIs(
484494
span.status.status_code,
485495
trace.StatusCode.ERROR,
@@ -489,9 +499,7 @@ def test_not_foundbasic(self):
489499
self.assertEqual(len(metrics), 1)
490500
duration_data_point = metrics[0].data.data_points[0]
491501
self.assertEqual(
492-
duration_data_point.attributes.get(
493-
SpanAttributes.HTTP_STATUS_CODE
494-
),
502+
duration_data_point.attributes.get(HTTP_STATUS_CODE),
495503
404,
496504
)
497505

@@ -535,9 +543,7 @@ def test_not_foundbasic_both_semconv(self):
535543

536544
self.assertEqual(result.status_code, 404)
537545
span = self.assert_span()
538-
self.assertEqual(
539-
span.attributes.get(SpanAttributes.HTTP_STATUS_CODE), 404
540-
)
546+
self.assertEqual(span.attributes.get(HTTP_STATUS_CODE), 404)
541547
self.assertEqual(
542548
span.attributes.get(HTTP_RESPONSE_STATUS_CODE), 404
543549
)
@@ -554,7 +560,7 @@ def test_not_foundbasic_both_semconv(self):
554560
self.assertEqual(
555561
metrics[0]
556562
.data.data_points[0]
557-
.attributes.get(SpanAttributes.HTTP_STATUS_CODE),
563+
.attributes.get(HTTP_STATUS_CODE),
558564
404,
559565
)
560566
self.assertEqual(
@@ -612,9 +618,9 @@ def test_requests_500_error(self):
612618
self.assertEqual(
613619
dict(span.attributes),
614620
{
615-
SpanAttributes.HTTP_METHOD: "GET",
616-
SpanAttributes.HTTP_URL: self.URL,
617-
SpanAttributes.HTTP_STATUS_CODE: 500,
621+
HTTP_METHOD: "GET",
622+
HTTP_URL: self.URL,
623+
HTTP_STATUS_CODE: 500,
618624
},
619625
)
620626
self.assertEqual(span.status.status_code, StatusCode.ERROR)
@@ -689,14 +695,14 @@ def test_requests_timeout_exception_both_semconv(self):
689695
self.assertEqual(
690696
dict(span.attributes),
691697
{
692-
SpanAttributes.HTTP_METHOD: "GET",
698+
HTTP_METHOD: "GET",
693699
HTTP_REQUEST_METHOD: "GET",
694-
SpanAttributes.HTTP_URL: url,
700+
HTTP_URL: url,
695701
URL_FULL: url,
696-
SpanAttributes.HTTP_HOST: "mock",
702+
HTTP_HOST: "mock",
697703
SERVER_ADDRESS: "mock",
698704
NETWORK_PEER_ADDRESS: "mock",
699-
SpanAttributes.NET_PEER_PORT: 8080,
705+
NET_PEER_PORT: 8080,
700706
SERVER_PORT: 8080,
701707
NETWORK_PEER_PORT: 8080,
702708
ERROR_TYPE: "TimeoutException",
@@ -722,10 +728,8 @@ def test_invalid_url(self):
722728
span = self.assert_span()
723729

724730
self.assertEqual(span.name, "POST")
725-
self.assertEqual(
726-
span.attributes[SpanAttributes.HTTP_METHOD], "POST"
727-
)
728-
self.assertEqual(span.attributes[SpanAttributes.HTTP_URL], url)
731+
self.assertEqual(span.attributes[HTTP_METHOD], "POST")
732+
self.assertEqual(span.attributes[HTTP_URL], url)
729733
self.assertEqual(span.status.status_code, StatusCode.ERROR)
730734

731735
def test_if_headers_equals_none(self):
@@ -823,9 +827,9 @@ def test_metrics_have_response_attributes_with_disabled_tracing(
823827
self._run_disabled_tracing_metrics_attributes_test(
824828
url=self.URL,
825829
expected_attributes={
826-
SpanAttributes.HTTP_STATUS_CODE: 200,
827-
SpanAttributes.HTTP_METHOD: "GET",
828-
SpanAttributes.HTTP_SCHEME: "http",
830+
HTTP_STATUS_CODE: 200,
831+
HTTP_METHOD: "GET",
832+
HTTP_SCHEME: "http",
829833
},
830834
)
831835

@@ -857,9 +861,9 @@ def test_response_hook(self):
857861
self.assertEqual(
858862
dict(span.attributes),
859863
{
860-
SpanAttributes.HTTP_METHOD: "GET",
861-
SpanAttributes.HTTP_URL: self.URL,
862-
SpanAttributes.HTTP_STATUS_CODE: 200,
864+
HTTP_METHOD: "GET",
865+
HTTP_URL: self.URL,
866+
HTTP_STATUS_CODE: 200,
863867
HTTP_RESPONSE_BODY: "Hello!",
864868
},
865869
)
@@ -939,12 +943,8 @@ def test_client_mounts_with_instrumented_transport(self):
939943
self.perform_request(self.URL, client=client1)
940944
self.perform_request(https_url, client=client2)
941945
spans = self.assert_span(num_spans=2)
942-
self.assertEqual(
943-
spans[0].attributes[SpanAttributes.HTTP_URL], self.URL
944-
)
945-
self.assertEqual(
946-
spans[1].attributes[SpanAttributes.HTTP_URL], https_url
947-
)
946+
self.assertEqual(spans[0].attributes[HTTP_URL], self.URL)
947+
self.assertEqual(spans[1].attributes[HTTP_URL], https_url)
948948

949949
@mock.patch.dict("os.environ", {"NO_PROXY": ""}, clear=True)
950950
class BaseInstrumentorTest(BaseTest, metaclass=abc.ABCMeta):
@@ -1036,9 +1036,9 @@ def test_response_hook(self):
10361036
self.assertEqual(
10371037
dict(span.attributes),
10381038
{
1039-
SpanAttributes.HTTP_METHOD: "GET",
1040-
SpanAttributes.HTTP_URL: self.URL,
1041-
SpanAttributes.HTTP_STATUS_CODE: 200,
1039+
HTTP_METHOD: "GET",
1040+
HTTP_URL: self.URL,
1041+
HTTP_STATUS_CODE: 200,
10421042
HTTP_RESPONSE_BODY: "Hello!",
10431043
},
10441044
)
@@ -1057,9 +1057,9 @@ def test_response_hook_sync_async_kwargs(self):
10571057
self.assertEqual(
10581058
dict(span.attributes),
10591059
{
1060-
SpanAttributes.HTTP_METHOD: "GET",
1061-
SpanAttributes.HTTP_URL: self.URL,
1062-
SpanAttributes.HTTP_STATUS_CODE: 200,
1060+
HTTP_METHOD: "GET",
1061+
HTTP_URL: self.URL,
1062+
HTTP_STATUS_CODE: 200,
10631063
HTTP_RESPONSE_BODY: "Hello!",
10641064
},
10651065
)
@@ -1162,7 +1162,7 @@ def test_instrumentation_without_client(self):
11621162
with self.subTest(idx=idx, res=res):
11631163
self.assertEqual(res.text, "Hello!")
11641164
self.assertEqual(
1165-
spans[idx].attributes[SpanAttributes.HTTP_URL],
1165+
spans[idx].attributes[HTTP_URL],
11661166
self.URL,
11671167
)
11681168

@@ -1360,12 +1360,12 @@ def test_remove_sensitive_params(self):
13601360
self.perform_request(new_url)
13611361
span = self.assert_span()
13621362

1363-
actual_url = span.attributes[SpanAttributes.HTTP_URL]
1363+
actual_url = span.attributes[HTTP_URL]
13641364

13651365
if "@" in actual_url:
13661366
# If credentials are present, they must be redacted
13671367
self.assertEqual(
1368-
span.attributes[SpanAttributes.HTTP_URL],
1368+
span.attributes[HTTP_URL],
13691369
"http://REDACTED:REDACTED@mock/status/200?sig=REDACTED",
13701370
)
13711371
else:
@@ -1446,11 +1446,11 @@ def test_remove_sensitive_params(self):
14461446
self.perform_request(new_url)
14471447
span = self.assert_span()
14481448

1449-
actual_url = span.attributes[SpanAttributes.HTTP_URL]
1449+
actual_url = span.attributes[HTTP_URL]
14501450

14511451
if "@" in actual_url:
14521452
self.assertEqual(
1453-
span.attributes[SpanAttributes.HTTP_URL],
1453+
span.attributes[HTTP_URL],
14541454
"http://REDACTED:REDACTED@mock/status/200?Signature=REDACTED",
14551455
)
14561456
else:
@@ -1563,9 +1563,9 @@ def test_async_response_hook_does_nothing_if_not_coroutine(self):
15631563
self.assertEqual(
15641564
dict(span.attributes),
15651565
{
1566-
SpanAttributes.HTTP_METHOD: "GET",
1567-
SpanAttributes.HTTP_URL: self.URL,
1568-
SpanAttributes.HTTP_STATUS_CODE: 200,
1566+
HTTP_METHOD: "GET",
1567+
HTTP_URL: self.URL,
1568+
HTTP_STATUS_CODE: 200,
15691569
},
15701570
)
15711571

0 commit comments

Comments
 (0)