support accessing environment variables in format strings (#1968)

{_env[HOME]} to get the value of $HOME
every other format string feature is supported as well
This commit is contained in:
Mike Fährmann
2021-10-27 23:48:00 +02:00
parent e4696b40ba
commit 38193dba46
2 changed files with 23 additions and 1 deletions

View File

@@ -173,6 +173,13 @@ class TestFormatter(unittest.TestCase):
self._run_test("{d[a]:?</>/L1/too long/}", "<too long>")
self._run_test("{d[c]:?</>/L5/too long/}", "")
def test_environ(self):
os.environ["FORMATTER_TEST"] = value = self.kwdict["a"]
self._run_test("{_env[FORMATTER_TEST]}" , value)
self._run_test("{_env[FORMATTER_TEST]!l}", value.lower())
self._run_test("{z|_env[FORMATTER_TEST]}", value)
def _run_test(self, format_string, result, default=None):
fmt = formatter.parse(format_string, default)
output = fmt.format_map(self.kwdict)