1
1
import datetime
2
2
from http .client import HTTPConnection
3
3
from importlib import import_module
4
+ import json
4
5
import time
5
6
6
7
import pytest
@@ -167,7 +168,12 @@ def test_elasticsearch(self):
167
168
es .index (id = 10 , body = {"name" : "ten" , "created" : datetime .date (2016 , 1 , 1 )}, ** args )
168
169
es .index (id = 11 , body = {"name" : "eleven" , "created" : datetime .date (2016 , 2 , 1 )}, ** args )
169
170
es .index (id = 12 , body = {"name" : "twelve" , "created" : datetime .date (2016 , 3 , 1 )}, ** args )
170
- result = es .search (sort = ["name:desc" ], size = 100 , body = {"query" : {"match_all" : {}}}, ** args )
171
+ result = es .search (
172
+ sort = {"name" : {"order" : "desc" , "unmapped_type" : "keyword" }},
173
+ size = 100 ,
174
+ body = {"query" : {"match_all" : {}}},
175
+ ** args ,
176
+ )
171
177
172
178
assert len (result ["hits" ]["hits" ]) == 3 , result
173
179
spans = self .get_spans ()
@@ -183,13 +189,25 @@ def test_elasticsearch(self):
183
189
assert url .endswith ("/_search" )
184
190
assert url == span .get_tag ("elasticsearch.url" )
185
191
if elasticsearch .__version__ >= (8 , 0 , 0 ):
186
- assert span .get_tag ("elasticsearch.body" ).replace (" " , "" ) == '{"query":{"match_all":{}},"size":100}'
187
- assert set (span .get_tag ("elasticsearch.params" ).split ("&" )) == {"sort=name%3Adesc" }
188
- assert set (span .get_tag (http .QUERY_STRING ).split ("&" )) == {"sort=name%3Adesc" }
192
+ # Key order is not consistent, parse into dict to compare
193
+ body = json .loads (span .get_tag ("elasticsearch.body" ))
194
+ assert body == {
195
+ "query" : {"match_all" : {}},
196
+ "sort" : {"name" : {"order" : "desc" , "unmapped_type" : "keyword" }},
197
+ "size" : 100 ,
198
+ }
199
+ assert not span .get_tag ("elasticsearch.params" )
200
+ assert not span .get_tag (http .QUERY_STRING )
189
201
else :
190
202
assert span .get_tag ("elasticsearch.body" ).replace (" " , "" ) == '{"query":{"match_all":{}}}'
191
- assert set (span .get_tag ("elasticsearch.params" ).split ("&" )) == {"sort=name%3Adesc" , "size=100" }
192
- assert set (span .get_tag (http .QUERY_STRING ).split ("&" )) == {"sort=name%3Adesc" , "size=100" }
203
+ assert set (span .get_tag ("elasticsearch.params" ).split ("&" )) == {
204
+ "sort=%7B%27name%27%3A+%7B%27order%27%3A+%27desc%27%2C+%27unmapped_type%27%3A+%27keyword%27%7D%7D" ,
205
+ "size=100" ,
206
+ }
207
+ assert set (span .get_tag (http .QUERY_STRING ).split ("&" )) == {
208
+ "sort=%7B%27name%27%3A+%7B%27order%27%3A+%27desc%27%2C+%27unmapped_type%27%3A+%27keyword%27%7D%7D" ,
209
+ "size=100" ,
210
+ }
193
211
assert span .get_tag ("component" ) == "elasticsearch"
194
212
assert span .get_tag ("span.kind" ) == "client"
195
213
0 commit comments