fix: compatibility with v2, headers.Content-Type

This commit is contained in:
debugtalk
2020-05-27 21:27:09 +08:00
parent dd3a3de9b3
commit 0cdaa7f433
2 changed files with 32 additions and 1 deletions

View File

@@ -6,12 +6,21 @@ from typing import List, Dict, Text
def convert_jmespath(raw: Text) -> Text:
# content.xx/json.xx => body.xx
if raw.startswith("content"):
return f"body{raw[len('content'):]}"
elif raw.startswith("json"):
return f"body{raw[len('json'):]}"
return raw
# add quotes for field with separator, e.g. headers.Content-Type
raw_list = []
for item in raw.split("."):
if "-" in item:
raw_list.append(f'"{item}"')
else:
raw_list.append(item)
return ".".join(raw_list)
def convert_extractors(extractors: List) -> Dict:

22
httprunner/compat_test.py Normal file
View File

@@ -0,0 +1,22 @@
import os
import unittest
from httprunner import compat
class TestCompat(unittest.TestCase):
def test_convert_jmespath(self):
self.assertEqual(
compat.convert_jmespath("content.abc"),
"body.abc"
)
self.assertEqual(
compat.convert_jmespath("json.abc"),
"body.abc"
)
self.assertEqual(
compat.convert_jmespath("headers.Content-Type"),
'headers."Content-Type"'
)