File tree 3 files changed +28
-3
lines changed
instrumentation/opentelemetry-instrumentation-asgi
src/opentelemetry/instrumentation/asgi
3 files changed +28
-3
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
21
21
([ #1507 ] ( https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1507 ) )
22
22
- Fix pymongo to collect the property DB_MONGODB_COLLECTION
23
23
([ #1555 ] ( https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1555 ) )
24
+ - ` opentelemetry-instrumentation-asgi ` Fix keys() in class ASGIGetter to correctly fetch values from carrier headers.
25
+ ([ #1435 ] ( https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1435 ) )
26
+
24
27
25
28
## Version 1.15.0/0.36b0 (2022-12-10)
26
29
Original file line number Diff line number Diff line change @@ -260,7 +260,8 @@ def get(
260
260
return decoded
261
261
262
262
def keys (self , carrier : dict ) -> typing .List [str ]:
263
- return [_key .decode ("utf8" ) for (_key , _value ) in carrier ]
263
+ headers = carrier .get ("headers" ) or []
264
+ return [_key .decode ("utf8" ) for (_key , _value ) in headers ]
264
265
265
266
266
267
asgi_getter = ASGIGetter ()
Original file line number Diff line number Diff line change 18
18
19
19
20
20
class TestASGIGetter (TestCase ):
21
- def test_get_none (self ):
21
+ def test_get_none_empty_carrier (self ):
22
22
getter = ASGIGetter ()
23
23
carrier = {}
24
24
val = getter .get (carrier , "test" )
25
25
self .assertIsNone (val )
26
26
27
+ def test_get_none_empty_headers (self ):
28
+ getter = ASGIGetter ()
29
+ carrier = {"headers" : []}
30
+ val = getter .get (carrier , "test" )
31
+ self .assertIsNone (val )
32
+
27
33
def test_get_ (self ):
28
34
getter = ASGIGetter ()
29
35
carrier = {"headers" : [(b"test-key" , b"val" )]}
@@ -44,7 +50,22 @@ def test_get_(self):
44
50
"Should be case insensitive" ,
45
51
)
46
52
47
- def test_keys (self ):
53
+ def test_keys_empty_carrier (self ):
48
54
getter = ASGIGetter ()
49
55
keys = getter .keys ({})
50
56
self .assertEqual (keys , [])
57
+
58
+ def test_keys_empty_headers (self ):
59
+ getter = ASGIGetter ()
60
+ keys = getter .keys ({"headers" : []})
61
+ self .assertEqual (keys , [])
62
+
63
+ def test_keys (self ):
64
+ getter = ASGIGetter ()
65
+ carrier = {"headers" : [(b"test-key" , b"val" )]}
66
+ expected_val = ["test-key" ]
67
+ self .assertEqual (
68
+ getter .keys (carrier ),
69
+ expected_val ,
70
+ "Should be equal" ,
71
+ )
You can’t perform that action at this time.
0 commit comments