mirror of
https://github.com/httprunner/httprunner.git
synced 2026-08-28 19:47:14 +08:00
fix: escape '{' and '}'
This commit is contained in:
@@ -483,10 +483,15 @@ class LazyString(object):
|
|||||||
try:
|
try:
|
||||||
# find next $ location
|
# find next $ location
|
||||||
match_start_position = raw_string.index("$", curr_position+1)
|
match_start_position = raw_string.index("$", curr_position+1)
|
||||||
self._string += raw_string[curr_position:match_start_position]
|
remain_string = raw_string[curr_position:match_start_position]
|
||||||
except ValueError:
|
except ValueError:
|
||||||
self._string += raw_string[curr_position:]
|
remain_string = raw_string[curr_position:]
|
||||||
break
|
# break while loop
|
||||||
|
match_start_position = len(raw_string)
|
||||||
|
|
||||||
|
remain_string = remain_string.replace("{", "{{")
|
||||||
|
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)
|
||||||
|
|||||||
+28
-5
@@ -326,21 +326,44 @@ class TestParserBasic(unittest.TestCase):
|
|||||||
self.assertEqual(var.to_value(variables_mapping), "ABCabc/123abc/456")
|
self.assertEqual(var.to_value(variables_mapping), "ABCabc/123abc/456")
|
||||||
|
|
||||||
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{}{{")
|
||||||
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}", functions_mapping, check_variables_set)
|
||||||
|
self.assertEqual(var._string, "ABC{}}}")
|
||||||
|
self.assertEqual(var._args, ["var_1"])
|
||||||
|
self.assertEqual(var.to_value(variables_mapping), "ABCabc}")
|
||||||
|
|
||||||
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${}{{")
|
||||||
self.assertEqual(var._args, ["var_1"])
|
self.assertEqual(var._args, ["var_1"])
|
||||||
|
self.assertEqual(var.to_value(variables_mapping), "ABC$abc{")
|
||||||
|
|
||||||
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{}${{")
|
||||||
self.assertEqual(var._args, ["var_1"])
|
self.assertEqual(var._args, ["var_1"])
|
||||||
|
self.assertEqual(var.to_value(variables_mapping), "ABCabc${")
|
||||||
|
|
||||||
var = parser.LazyString("ABC$var_1${a", functions_mapping, check_variables_set)
|
var = parser.LazyString("ABC$var_1${a", functions_mapping, check_variables_set)
|
||||||
self.assertEqual(var._string, "ABC{}${a")
|
self.assertEqual(var._string, "ABC{}${{a")
|
||||||
self.assertEqual(var._args, ["var_1"])
|
self.assertEqual(var._args, ["var_1"])
|
||||||
|
self.assertEqual(var.to_value(variables_mapping), "ABCabc${a")
|
||||||
|
|
||||||
|
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("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("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("ABC$var_1/$var_2/$var_1", functions_mapping, check_variables_set)
|
var = parser.LazyString("ABC$var_1/$var_2/$var_1", functions_mapping, check_variables_set)
|
||||||
self.assertEqual(var._string, "ABC{}/{}/{}")
|
self.assertEqual(var._string, "ABC{}/{}/{}")
|
||||||
|
|||||||
Reference in New Issue
Block a user