@@ -53,7 +53,7 @@ def test_header_type_error(self):
5353
5454 def test_header_match (self ):
5555 # Trace option is not enabled.
56- header = '6e0c63257de34c92bf9efcd03927272e/00f067aa0ba902b7 ;o=0'
56+ header = '6e0c63257de34c92bf9efcd03927272e/67667974448284343 ;o=0'
5757 expected_trace_id = '6e0c63257de34c92bf9efcd03927272e'
5858 expected_span_id = '00f067aa0ba902b7'
5959
@@ -65,7 +65,7 @@ def test_header_match(self):
6565 self .assertFalse (span_context .trace_options .enabled )
6666
6767 # Trace option is enabled.
68- header = '6e0c63257de34c92bf9efcd03927272e/00f067aa0ba902b7 ;o=1'
68+ header = '6e0c63257de34c92bf9efcd03927272e/67667974448284343 ;o=1'
6969 expected_trace_id = '6e0c63257de34c92bf9efcd03927272e'
7070 expected_span_id = '00f067aa0ba902b7'
7171
@@ -76,8 +76,58 @@ def test_header_match(self):
7676 self .assertEqual (span_context .span_id , expected_span_id )
7777 self .assertTrue (span_context .trace_options .enabled )
7878
79+ def test_header_match_no_span_id (self ):
80+ # Trace option is not enabled.
81+ header = '6e0c63257de34c92bf9efcd03927272e;o=0'
82+ expected_trace_id = '6e0c63257de34c92bf9efcd03927272e'
83+ expected_span_id = None
84+
85+ propagator = google_cloud_format .GoogleCloudFormatPropagator ()
86+ span_context = propagator .from_header (header )
87+
88+ self .assertEqual (span_context .trace_id , expected_trace_id )
89+ self .assertEqual (span_context .span_id , expected_span_id )
90+ self .assertFalse (span_context .trace_options .enabled )
91+
92+ # Trace option is enabled.
93+ header = '6e0c63257de34c92bf9efcd03927272e;o=1'
94+ expected_trace_id = '6e0c63257de34c92bf9efcd03927272e'
95+ expected_span_id = None
96+
97+ propagator = google_cloud_format .GoogleCloudFormatPropagator ()
98+ span_context = propagator .from_header (header )
99+
100+ self .assertEqual (span_context .trace_id , expected_trace_id )
101+ self .assertEqual (span_context .span_id , expected_span_id )
102+ self .assertTrue (span_context .trace_options .enabled )
103+
104+ def test_header_match_empty_span_id (self ):
105+ # Trace option is not enabled.
106+ header = '6e0c63257de34c92bf9efcd03927272e/;o=0'
107+ expected_trace_id = '6e0c63257de34c92bf9efcd03927272e'
108+ expected_span_id = None
109+
110+ propagator = google_cloud_format .GoogleCloudFormatPropagator ()
111+ span_context = propagator .from_header (header )
112+
113+ self .assertEqual (span_context .trace_id , expected_trace_id )
114+ self .assertEqual (span_context .span_id , expected_span_id )
115+ self .assertFalse (span_context .trace_options .enabled )
116+
117+ # Trace option is enabled.
118+ header = '6e0c63257de34c92bf9efcd03927272e/;o=1'
119+ expected_trace_id = '6e0c63257de34c92bf9efcd03927272e'
120+ expected_span_id = None
121+
122+ propagator = google_cloud_format .GoogleCloudFormatPropagator ()
123+ span_context = propagator .from_header (header )
124+
125+ self .assertEqual (span_context .trace_id , expected_trace_id )
126+ self .assertEqual (span_context .span_id , expected_span_id )
127+ self .assertTrue (span_context .trace_options .enabled )
128+
79129 def test_header_match_no_option (self ):
80- header = '6e0c63257de34c92bf9efcd03927272e/00f067aa0ba902b7 '
130+ header = '6e0c63257de34c92bf9efcd03927272e/67667974448284343 '
81131 expected_trace_id = '6e0c63257de34c92bf9efcd03927272e'
82132 expected_span_id = '00f067aa0ba902b7'
83133
@@ -101,7 +151,7 @@ def test_headers_match(self):
101151 # Trace option is enabled.
102152 headers = {
103153 'X-Cloud-Trace-Context' :
104- '6e0c63257de34c92bf9efcd03927272e/00f067aa0ba902b7 ;o=1' ,
154+ '6e0c63257de34c92bf9efcd03927272e/67667974448284343 ;o=1' ,
105155 }
106156 expected_trace_id = '6e0c63257de34c92bf9efcd03927272e'
107157 expected_span_id = '00f067aa0ba902b7'
@@ -128,7 +178,7 @@ def test_to_header(self):
128178
129179 header = propagator .to_header (span_context )
130180 expected_header = '{}/{};o={}' .format (
131- trace_id , span_id , 1 )
181+ trace_id , int ( span_id , 16 ) , 1 )
132182
133183 self .assertEqual (header , expected_header )
134184
@@ -147,7 +197,8 @@ def test_to_headers(self):
147197
148198 headers = propagator .to_headers (span_context )
149199 expected_headers = {
150- 'X-Cloud-Trace-Context' : '{}/{};o={}' .format (trace_id , span_id , 1 ),
200+ 'X-Cloud-Trace-Context' : '{}/{};o={}' .format (
201+ trace_id , int (span_id , 16 ), 1 ),
151202 }
152203
153204 self .assertEqual (headers , expected_headers )
0 commit comments