[formatter] allow dots etc in '…' literals (#5539)

don't parse fields starting with '

this disables the ability to directly apply […] to '…' literals,
but that's not really useful anyway and can still be done with _lit
This commit is contained in:
Mike Fährmann
2024-05-02 17:24:59 +02:00
parent 619bf5c644
commit d0cead105b
2 changed files with 22 additions and 12 deletions

View File

@@ -336,14 +336,14 @@ class TestFormatter(unittest.TestCase):
def test_literals(self):
value = "foo"
self._run_test("{'foo'}" , value)
self._run_test("{'foo'!u}" , value.upper())
self._run_test("{'f00':R0/o/}" , value)
self._run_test("{'foobar'[:3]}", value)
self._run_test("{z|'foo'}" , value)
self._run_test("{z|''|'foo'}" , value)
self._run_test("{z|''}" , "")
self._run_test("{''|''}" , "")
self._run_test("{'foo'}" , value)
self._run_test("{'foo'!u}" , value.upper())
self._run_test("{'f00':R0/o/}", value)
self._run_test("{z|'foo'}" , value)
self._run_test("{z|''|'foo'}" , value)
self._run_test("{z|'foo'!u}" , value.upper())
self._run_test("{z|'f00':R0/o/}", value)
self._run_test("{_lit[foo]}" , value)
self._run_test("{_lit[foo]!u}" , value.upper())
@@ -351,6 +351,17 @@ class TestFormatter(unittest.TestCase):
self._run_test("{_lit[foobar][:3]}", value)
self._run_test("{z|_lit[foo]}" , value)
# empty (#4492)
self._run_test("{z|''}" , "")
self._run_test("{''|''}", "")
# special characters (dots, brackets, singlee quotes) (#5539)
self._run_test("{'f.o.o'}" , "f.o.o")
self._run_test("{_lit[f.o.o]}", "f.o.o")
self._run_test("{_lit[f'o'o]}", "f'o'o")
self._run_test("{'f.[].[]'}" , "f.[].[]")
self._run_test("{z|'f.[].[]'}", "f.[].[]")
def test_template(self):
with tempfile.TemporaryDirectory() as tmpdirname:
path1 = os.path.join(tmpdirname, "tpl1")