2121import pytest
2222import opentracing
2323from mock import MagicMock
24- if six .PY2 :
25- from crossdock .server import server
2624from tornado .httpclient import HTTPRequest
2725from jaeger_client import Tracer , ConstSampler
2826from jaeger_client .reporter import InMemoryReporter
2927from crossdock .server .endtoend import EndToEndHandler , _determine_host_port , _parse_host_port
3028
31- tchannel_port = "9999"
29+ if six .PY2 :
30+ from crossdock .server import server
31+
32+ tchannel_port = '9999'
3233
3334
3435@pytest .fixture
@@ -54,16 +55,16 @@ def tracer():
5455
5556
5657PERMUTATIONS = []
57- for s2 in [" HTTP" , " TCHANNEL" ]:
58- for s3 in [" HTTP" , " TCHANNEL" ]:
58+ for s2 in [' HTTP' , ' TCHANNEL' ]:
59+ for s3 in [' HTTP' , ' TCHANNEL' ]:
5960 for sampled in [True , False ]:
6061 PERMUTATIONS .append ((s2 , s3 , sampled ))
6162
6263
6364# noinspection PyShadowingNames
6465@pytest .mark .parametrize ('s2_transport,s3_transport,sampled' , PERMUTATIONS )
6566@pytest .mark .gen_test
66- @pytest .mark .skipif (six .PY3 , reason = " crossdock tests need tchannel that only works with Python 2.7" )
67+ @pytest .mark .skipif (six .PY3 , reason = ' crossdock tests need tchannel that only works with Python 2.7' )
6768def test_trace_propagation (
6869 s2_transport , s3_transport , sampled , tracer ,
6970 base_url , http_port , http_client ):
@@ -77,32 +78,32 @@ def test_trace_propagation(
7778 )
7879
7980 level3 = dict ()
80- level3 [" serviceName" ] = " python"
81- level3 [" serverRole" ] = "s3"
82- level3 [" transport" ] = s3_transport
83- level3 [" host" ] = " localhost"
84- level3 [" port" ] = str (http_port ) if s3_transport == " HTTP" else tchannel_port
81+ level3 [' serviceName' ] = ' python'
82+ level3 [' serverRole' ] = 's3'
83+ level3 [' transport' ] = s3_transport
84+ level3 [' host' ] = ' localhost'
85+ level3 [' port' ] = str (http_port ) if s3_transport == ' HTTP' else tchannel_port
8586
8687 level2 = dict ()
87- level2 [" serviceName" ] = " python"
88- level2 [" serverRole" ] = "s2"
89- level2 [" transport" ] = s2_transport
90- level2 [" host" ] = " localhost"
91- level2 [" port" ] = str (http_port ) if s2_transport == " HTTP" else tchannel_port
92- level2 [" downstream" ] = level3
88+ level2 [' serviceName' ] = ' python'
89+ level2 [' serverRole' ] = 's2'
90+ level2 [' transport' ] = s2_transport
91+ level2 [' host' ] = ' localhost'
92+ level2 [' port' ] = str (http_port ) if s2_transport == ' HTTP' else tchannel_port
93+ level2 [' downstream' ] = level3
9394
9495 level1 = dict ()
95- level1 [" baggage" ] = " Zoidberg"
96- level1 [" serverRole" ] = "s1"
97- level1 [" sampled" ] = sampled
98- level1 [" downstream" ] = level2
96+ level1 [' baggage' ] = ' Zoidberg'
97+ level1 [' serverRole' ] = 's1'
98+ level1 [' sampled' ] = sampled
99+ level1 [' downstream' ] = level2
99100 body = json .dumps (level1 )
100101
101102 with mock .patch ('opentracing.tracer' , tracer ):
102- assert opentracing .tracer == tracer # sanity check that patch worked
103+ assert opentracing .tracer == tracer # sanity check that patch worked
103104
104- req = HTTPRequest (url = " %s/start_trace" % base_url , method = " POST" ,
105- headers = {" Content-Type" : " application/json" },
105+ req = HTTPRequest (url = ' %s/start_trace' % base_url , method = ' POST' ,
106+ headers = {' Content-Type' : ' application/json' },
106107 body = body ,
107108 request_timeout = 2 )
108109
@@ -111,40 +112,41 @@ def test_trace_propagation(
111112 tr = server .serializer .traceresponse_from_json (response .body )
112113 assert tr is not None
113114 assert tr .span is not None
114- assert tr .span .baggage == level1 .get (" baggage" )
115+ assert tr .span .baggage == level1 .get (' baggage' )
115116 assert tr .span .sampled == sampled
116117 assert tr .span .traceId is not None
117118 assert tr .downstream is not None
118- assert tr .downstream .span .baggage == level1 .get (" baggage" )
119+ assert tr .downstream .span .baggage == level1 .get (' baggage' )
119120 assert tr .downstream .span .sampled == sampled
120121 assert tr .downstream .span .traceId == tr .span .traceId
121122 assert tr .downstream .downstream is not None
122- assert tr .downstream .downstream .span .baggage == level1 .get (" baggage" )
123+ assert tr .downstream .downstream .span .baggage == level1 .get (' baggage' )
123124 assert tr .downstream .downstream .span .sampled == sampled
124125 assert tr .downstream .downstream .span .traceId == tr .span .traceId
125126
126127
127128# noinspection PyShadowingNames
128129@pytest .mark .gen_test
129- @pytest .mark .skipif (six .PY3 , reason = " crossdock tests need tchannel that only works with Python 2.7" )
130+ @pytest .mark .skipif (six .PY3 , reason = ' crossdock tests need tchannel that only works with Python 2.7' )
130131def test_endtoend_handler (tracer ):
131132 payload = dict ()
132- payload [" operation" ] = " Zoidberg"
133- payload [" count" ] = 2
134- payload [" tags" ] = {" key" : " value" }
133+ payload [' operation' ] = ' Zoidberg'
134+ payload [' count' ] = 2
135+ payload [' tags' ] = {' key' : ' value' }
135136 body = json .dumps (payload )
136137
137138 h = EndToEndHandler ()
138139 request = MagicMock (body = body )
139140 response_writer = MagicMock ()
140141 response_writer .finish .return_value = None
141142
142- h .tracers = {" remote" : tracer }
143+ h .tracers = {' remote' : tracer }
143144 h .generate_traces (request , response_writer )
144145
145146 spans = tracer .reporter .get_spans ()
146147 assert len (spans ) == 2
147148
149+
148150def test_determine_host_port ():
149151 original_value = os .environ .get ('AGENT_HOST_PORT' , None )
150152 os .environ ['AGENT_HOST_PORT' ] = 'localhost:1234'
@@ -157,6 +159,7 @@ def test_determine_host_port():
157159 assert host == 'localhost'
158160 assert port == 1234
159161
162+
160163def test_parse_host_port ():
161164 test_cases = [
162165 [('' , 'localhost' , 5678 ), ('localhost' , 5678 )],
0 commit comments