@@ -32,9 +32,12 @@ async def test_ok_async():
32
32
status_code = 200
33
33
url = "http://{}/status/{}?foo=bar" .format (BASE_URL , status_code )
34
34
async with httpx .AsyncClient () as client :
35
- await client .get (url )
35
+ response = await client .get (url )
36
+ assert "x-amzn-trace-id" in response ._request .headers
37
+
36
38
subsegment = xray_recorder .current_segment ().subsegments [0 ]
37
39
assert get_hostname (url ) == BASE_URL
40
+ assert subsegment .namespace == "remote"
38
41
assert subsegment .name == get_hostname (url )
39
42
40
43
http_meta = subsegment .http
@@ -48,8 +51,11 @@ async def test_error_async():
48
51
status_code = 400
49
52
url = "http://{}/status/{}" .format (BASE_URL , status_code )
50
53
async with httpx .AsyncClient () as client :
51
- await client .post (url )
54
+ response = await client .post (url )
55
+ assert "x-amzn-trace-id" in response ._request .headers
56
+
52
57
subsegment = xray_recorder .current_segment ().subsegments [0 ]
58
+ assert subsegment .namespace == "remote"
53
59
assert subsegment .name == get_hostname (url )
54
60
assert subsegment .error
55
61
@@ -64,8 +70,11 @@ async def test_throttle_async():
64
70
status_code = 429
65
71
url = "http://{}/status/{}" .format (BASE_URL , status_code )
66
72
async with httpx .AsyncClient () as client :
67
- await client .head (url )
73
+ response = await client .head (url )
74
+ assert "x-amzn-trace-id" in response ._request .headers
75
+
68
76
subsegment = xray_recorder .current_segment ().subsegments [0 ]
77
+ assert subsegment .namespace == "remote"
69
78
assert subsegment .name == get_hostname (url )
70
79
assert subsegment .error
71
80
assert subsegment .throttle
@@ -81,8 +90,11 @@ async def test_fault_async():
81
90
status_code = 500
82
91
url = "http://{}/status/{}" .format (BASE_URL , status_code )
83
92
async with httpx .AsyncClient () as client :
84
- await client .put (url )
93
+ response = await client .put (url )
94
+ assert "x-amzn-trace-id" in response ._request .headers
95
+
85
96
subsegment = xray_recorder .current_segment ().subsegments [0 ]
97
+ assert subsegment .namespace == "remote"
86
98
assert subsegment .name == get_hostname (url )
87
99
assert subsegment .fault
88
100
@@ -94,13 +106,12 @@ async def test_fault_async():
94
106
95
107
@pytest .mark .asyncio
96
108
async def test_nonexistent_domain_async ():
97
- try :
109
+ with pytest . raises ( httpx . ConnectError ) :
98
110
async with httpx .AsyncClient () as client :
99
111
await client .get ("http://doesnt.exist" )
100
- except Exception :
101
- # prevent uncatch exception from breaking test run
102
- pass
112
+
103
113
subsegment = xray_recorder .current_segment ().subsegments [0 ]
114
+ assert subsegment .namespace == "remote"
104
115
assert subsegment .fault
105
116
106
117
exception = subsegment .cause ["exceptions" ][0 ]
@@ -110,13 +121,12 @@ async def test_nonexistent_domain_async():
110
121
@pytest .mark .asyncio
111
122
async def test_invalid_url_async ():
112
123
url = "KLSDFJKLSDFJKLSDJF"
113
- try :
124
+ with pytest . raises ( httpx . UnsupportedProtocol ) :
114
125
async with httpx .AsyncClient () as client :
115
126
await client .get (url )
116
- except Exception :
117
- # prevent uncatch exception from breaking test run
118
- pass
127
+
119
128
subsegment = xray_recorder .current_segment ().subsegments [0 ]
129
+ assert subsegment .namespace == "remote"
120
130
assert subsegment .name == get_hostname (url )
121
131
assert subsegment .fault
122
132
@@ -133,6 +143,7 @@ async def test_name_uses_hostname_async():
133
143
url1 = "http://{}/fakepath/stuff/koo/lai/ahh" .format (BASE_URL )
134
144
await client .get (url1 )
135
145
subsegment = xray_recorder .current_segment ().subsegments [- 1 ]
146
+ assert subsegment .namespace == "remote"
136
147
assert subsegment .name == BASE_URL
137
148
http_meta1 = subsegment .http
138
149
assert http_meta1 ["request" ]["url" ] == strip_url (url1 )
@@ -141,6 +152,7 @@ async def test_name_uses_hostname_async():
141
152
url2 = "http://{}/" .format (BASE_URL )
142
153
await client .get (url2 , params = {"some" : "payload" , "not" : "toBeIncluded" })
143
154
subsegment = xray_recorder .current_segment ().subsegments [- 1 ]
155
+ assert subsegment .namespace == "remote"
144
156
assert subsegment .name == BASE_URL
145
157
http_meta2 = subsegment .http
146
158
assert http_meta2 ["request" ]["url" ] == strip_url (url2 )
@@ -153,6 +165,7 @@ async def test_name_uses_hostname_async():
153
165
# This is an invalid url so we dont want to break the test
154
166
pass
155
167
subsegment = xray_recorder .current_segment ().subsegments [- 1 ]
168
+ assert subsegment .namespace == "remote"
156
169
assert subsegment .name == "subdomain." + BASE_URL
157
170
http_meta3 = subsegment .http
158
171
assert http_meta3 ["request" ]["url" ] == strip_url (url3 )
@@ -164,8 +177,11 @@ async def test_strip_http_url_async():
164
177
status_code = 200
165
178
url = "http://{}/get?foo=bar" .format (BASE_URL )
166
179
async with httpx .AsyncClient () as client :
167
- await client .get (url )
180
+ response = await client .get (url )
181
+ assert "x-amzn-trace-id" in response ._request .headers
182
+
168
183
subsegment = xray_recorder .current_segment ().subsegments [0 ]
184
+ assert subsegment .namespace == "remote"
169
185
assert subsegment .name == get_hostname (url )
170
186
171
187
http_meta = subsegment .http
0 commit comments