mirror of
https://github.com/httprunner/httprunner.git
synced 2026-07-09 22:44:05 +08:00
fix: escape braces
This commit is contained in:
@@ -458,11 +458,15 @@ class LazyString(object):
|
|||||||
"""
|
"""
|
||||||
self._args = []
|
self._args = []
|
||||||
|
|
||||||
|
def escape_braces(origin_string):
|
||||||
|
return origin_string.replace("{", "{{").replace("}", "}}")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
match_start_position = raw_string.index("$", 0)
|
match_start_position = raw_string.index("$", 0)
|
||||||
self._string = raw_string[0:match_start_position]
|
begin_string = raw_string[0:match_start_position]
|
||||||
|
self._string = escape_braces(begin_string)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
self._string = raw_string
|
self._string = escape_braces(raw_string)
|
||||||
return
|
return
|
||||||
|
|
||||||
while match_start_position < len(raw_string):
|
while match_start_position < len(raw_string):
|
||||||
@@ -518,9 +522,7 @@ class LazyString(object):
|
|||||||
# break while loop
|
# break while loop
|
||||||
match_start_position = len(raw_string)
|
match_start_position = len(raw_string)
|
||||||
|
|
||||||
remain_string = remain_string.replace("{", "{{")
|
self._string += escape_braces(remain_string)
|
||||||
remain_string = remain_string.replace("}", "}}")
|
|
||||||
self._string += remain_string
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "LazyString({})".format(self.raw_string)
|
return "LazyString({})".format(self.raw_string)
|
||||||
|
|||||||
@@ -305,6 +305,16 @@ class TestParserBasic(unittest.TestCase):
|
|||||||
self.assertEqual(var._args, ["var_1"])
|
self.assertEqual(var._args, ["var_1"])
|
||||||
self.assertEqual(var.to_value(variables_mapping), "ABCabc{")
|
self.assertEqual(var.to_value(variables_mapping), "ABCabc{")
|
||||||
|
|
||||||
|
var = parser.LazyString("{ABC$var_1{}a}", functions_mapping, check_variables_set)
|
||||||
|
self.assertEqual(var._string, "{{ABC{}{{}}a}}")
|
||||||
|
self.assertEqual(var._args, ["var_1"])
|
||||||
|
self.assertEqual(var.to_value(variables_mapping), "{ABCabc{}a}")
|
||||||
|
|
||||||
|
var = parser.LazyString("AB{C$var_1{}a}", functions_mapping, check_variables_set)
|
||||||
|
self.assertEqual(var._string, "AB{{C{}{{}}a}}")
|
||||||
|
self.assertEqual(var._args, ["var_1"])
|
||||||
|
self.assertEqual(var.to_value(variables_mapping), "AB{Cabc{}a}")
|
||||||
|
|
||||||
# }
|
# }
|
||||||
var = parser.LazyString("ABC$var_1}", functions_mapping, check_variables_set)
|
var = parser.LazyString("ABC$var_1}", functions_mapping, check_variables_set)
|
||||||
self.assertEqual(var._string, "ABC{}}}")
|
self.assertEqual(var._string, "ABC{}}}")
|
||||||
|
|||||||
Reference in New Issue
Block a user