@@ -28,6 +28,24 @@ def test_from_header_no_header(self):
2828
2929 assert isinstance (span_context , SpanContext )
3030
31+ def test_from_headers_none (self ):
32+ from opencensus .trace .span_context import SpanContext
33+
34+ propagator = trace_context_http_header_format .\
35+ TraceContextPropagator ()
36+ span_context = propagator .from_headers (None )
37+
38+ assert isinstance (span_context , SpanContext )
39+
40+ def test_from_headers_empty (self ):
41+ from opencensus .trace .span_context import SpanContext
42+
43+ propagator = trace_context_http_header_format .\
44+ TraceContextPropagator ()
45+ span_context = propagator .from_headers ({})
46+
47+ assert isinstance (span_context , SpanContext )
48+
3149 def test_header_type_error (self ):
3250 header = 1234
3351
@@ -97,6 +115,23 @@ def test_header_not_match(self):
97115
98116 self .assertNotEqual (span_context .trace_id , trace_id )
99117
118+ def test_headers_match (self ):
119+ # Trace option is enabled.
120+ headers = {
121+ 'traceparent' :
122+ '00-6e0c63257de34c92bf9efcd03927272e-00f067aa0ba902b7-01' ,
123+ }
124+ expected_trace_id = '6e0c63257de34c92bf9efcd03927272e'
125+ expected_span_id = '00f067aa0ba902b7'
126+
127+ propagator = trace_context_http_header_format .\
128+ TraceContextPropagator ()
129+ span_context = propagator .from_headers (headers )
130+
131+ self .assertEqual (span_context .trace_id , expected_trace_id )
132+ self .assertEqual (span_context .span_id , expected_span_id )
133+ self .assertTrue (span_context .trace_options .enabled )
134+
100135 def test_to_header (self ):
101136 from opencensus .trace import span_context
102137 from opencensus .trace import trace_options
@@ -117,3 +152,24 @@ def test_to_header(self):
117152 span_id_hex )
118153
119154 self .assertEqual (header , expected_header )
155+
156+ def test_to_headers (self ):
157+ from opencensus .trace import span_context
158+ from opencensus .trace import trace_options
159+
160+ trace_id = '6e0c63257de34c92bf9efcd03927272e'
161+ span_id_hex = '00f067aa0ba902b7'
162+ span_context = span_context .SpanContext (
163+ trace_id = trace_id ,
164+ span_id = span_id_hex ,
165+ trace_options = trace_options .TraceOptions ('1' ))
166+
167+ propagator = trace_context_http_header_format .\
168+ TraceContextPropagator ()
169+
170+ headers = propagator .to_headers (span_context )
171+ expected_headers = {
172+ 'traceparent' : '00-{}-{}-01' .format (trace_id , span_id_hex ),
173+ }
174+
175+ self .assertEqual (headers , expected_headers )
0 commit comments