fix: compatibility with jmespath, headers."Content-Type"

This commit is contained in:
debugtalk
2020-05-29 11:04:15 +08:00
parent be6d6c93a9
commit dffb096f05
2 changed files with 6 additions and 1 deletions
+3 -1
View File
@@ -18,7 +18,9 @@ def convert_jmespath(raw: Text) -> Text:
raw_list = [] raw_list = []
for item in raw.split("."): for item in raw.split("."):
if "-" in item: if "-" in item:
# add quotes for field with separator, e.g. headers.Content-Type # add quotes for field with separator
# e.g. headers.Content-Type => headers."Content-Type"
item = item.strip('"')
raw_list.append(f'"{item}"') raw_list.append(f'"{item}"')
elif item.isdigit(): elif item.isdigit():
# convert lst.0.name to lst[0].name # convert lst.0.name to lst[0].name
+3
View File
@@ -11,6 +11,9 @@ class TestCompat(unittest.TestCase):
self.assertEqual( self.assertEqual(
compat.convert_jmespath("headers.Content-Type"), 'headers."Content-Type"' compat.convert_jmespath("headers.Content-Type"), 'headers."Content-Type"'
) )
self.assertEqual(
compat.convert_jmespath('headers."Content-Type"'), 'headers."Content-Type"'
)
self.assertEqual( self.assertEqual(
compat.convert_jmespath("body.data.buildings.0.building_id"), compat.convert_jmespath("body.data.buildings.0.building_id"),
"body.data.buildings[0].building_id", "body.data.buildings[0].building_id",