mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 11:29:48 +08:00
fix: escape '{' and '}'
This commit is contained in:
@@ -483,10 +483,15 @@ class LazyString(object):
|
||||
try:
|
||||
# find next $ location
|
||||
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:
|
||||
self._string += raw_string[curr_position:]
|
||||
break
|
||||
remain_string = raw_string[curr_position:]
|
||||
# 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):
|
||||
return "LazyString({})".format(self.raw_string)
|
||||
|
||||
@@ -326,21 +326,44 @@ class TestParserBasic(unittest.TestCase):
|
||||
self.assertEqual(var.to_value(variables_mapping), "ABCabc/123abc/456")
|
||||
|
||||
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.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)
|
||||
self.assertEqual(var._string, "ABC${}{")
|
||||
self.assertEqual(var._string, "ABC${}{{")
|
||||
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)
|
||||
self.assertEqual(var._string, "ABC{}${")
|
||||
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${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.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)
|
||||
self.assertEqual(var._string, "ABC{}/{}/{}")
|
||||
|
||||
Reference in New Issue
Block a user