36
36
suppress_instrumentation ,
37
37
)
38
38
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
46
39
from opentelemetry .test .mock_textmap import MockTextMapPropagator
47
40
from opentelemetry .test .test_base import TestBase
48
41
from opentelemetry .trace import Span
@@ -123,24 +116,29 @@ def assert_success_span(
123
116
self .assertEqual (
124
117
span .status .status_code , trace .status .StatusCode .UNSET
125
118
)
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 ,
130
123
}
131
124
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 ,
136
129
}
137
130
138
131
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
+ },
142
138
}
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
+ )
144
142
145
143
def assert_exception_span (
146
144
self ,
@@ -149,24 +147,29 @@ def assert_exception_span(
149
147
):
150
148
span = self .assert_span ()
151
149
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 ,
155
153
}
156
154
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 ,
160
158
# TODO: Add `error.type` attribute when supported
161
159
}
162
160
163
161
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
+ },
167
168
}
168
169
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
+ )
170
173
self .assertEqual (
171
174
trace .status .StatusCode .ERROR , span .status .status_code
172
175
)
@@ -265,9 +268,7 @@ def test_basic_not_found(self):
265
268
self .assertEqual (404 , response .status )
266
269
267
270
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" ))
271
272
self .assertIs (trace .status .StatusCode .ERROR , span .status .status_code )
272
273
273
274
def test_basic_not_found_new_semconv (self ):
@@ -278,7 +279,7 @@ def test_basic_not_found_new_semconv(self):
278
279
self .assertEqual (404 , response .status )
279
280
280
281
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" ))
282
283
self .assertIs (trace .status .StatusCode .ERROR , span .status .status_code )
283
284
284
285
def test_basic_not_found_both_semconv (self ):
@@ -289,10 +290,8 @@ def test_basic_not_found_both_semconv(self):
289
290
self .assertEqual (404 , response .status )
290
291
291
292
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" ))
296
295
self .assertIs (trace .status .StatusCode .ERROR , span .status .status_code )
297
296
298
297
@mock .patch ("httpretty.http.HttpBaseClass.METHODS" , ("NONSTANDARD" ,))
@@ -303,12 +302,8 @@ def test_nonstandard_http_method(self):
303
302
self .perform_request (self .HTTP_URL , method = "NONSTANDARD" )
304
303
span = self .assert_span ()
305
304
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 )
312
307
313
308
@mock .patch ("httpretty.http.HttpBaseClass.METHODS" , ("NONSTANDARD" ,))
314
309
def test_nonstandard_http_method_new_semconv (self ):
@@ -318,11 +313,11 @@ def test_nonstandard_http_method_new_semconv(self):
318
313
self .perform_request (self .HTTP_URL , method = "NONSTANDARD" )
319
314
span = self .assert_span ()
320
315
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" )
322
317
self .assertEqual (
323
- span .attributes .get (HTTP_REQUEST_METHOD_ORIGINAL ), "NONSTANDARD"
318
+ span .attributes .get ("http.request.method_original" ), "NONSTANDARD"
324
319
)
325
- self .assertEqual (span .attributes .get (HTTP_RESPONSE_STATUS_CODE ), 405 )
320
+ self .assertEqual (span .attributes .get ("http.response.status_code" ), 405 )
326
321
327
322
@mock .patch ("httpretty.http.HttpBaseClass.METHODS" , ("NONSTANDARD" ,))
328
323
def test_nonstandard_http_method_both_semconv (self ):
@@ -332,17 +327,13 @@ def test_nonstandard_http_method_both_semconv(self):
332
327
self .perform_request (self .HTTP_URL , method = "NONSTANDARD" )
333
328
span = self .assert_span ()
334
329
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" )
335
333
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"
344
335
)
345
- self .assertEqual (span .attributes .get (HTTP_RESPONSE_STATUS_CODE ), 405 )
336
+ self .assertEqual (span .attributes .get ("http.response.status_code" ), 405 )
346
337
347
338
def test_basic_http_non_default_port (self ):
348
339
url = "http://mock:666/status/200"
0 commit comments