# HG changeset patch # User Franz Glasner # Date 1620371921 -7200 # Node ID d81d2cdf49257bf344f55f4653f21dd31b0485a8 # Parent cffa4fcd0a4db3a2ec6ca043f939c8aa9456e2a9 FIX: Handle the unquoting of namespaces within Configuration.getvar() properly. BUGS: The "ref" namespace is handled specially and not yet compatible with escaping some character of the "ref:" marker. diff -r cffa4fcd0a4d -r d81d2cdf4925 configmix/config.py --- a/configmix/config.py Thu May 06 22:58:10 2021 +0200 +++ b/configmix/config.py Fri May 07 09:18:41 2021 +0200 @@ -237,7 +237,7 @@ if len(nameparts) == 1: return (None, s, ) else: - return (nameparts[0], nameparts[1], ) + return (self.unquote(nameparts[0]), nameparts[1], ) def _split_filters(self, s): nameparts = s.split(self._FILTER_SEPARATOR) diff -r cffa4fcd0a4d -r d81d2cdf4925 tests/test.py --- a/tests/test.py Thu May 06 22:58:10 2021 +0200 +++ b/tests/test.py Fri May 07 09:18:41 2021 +0200 @@ -785,6 +785,14 @@ for c in """abc09'"#:|%./""": self.assertEqual(c, self._cfg.unquote(self._cfg.quote(c))) + def test_namespace_quoting(self): + v1 = self._cfg.getvar("PY:version") + v2 = self._cfg.getvar("P%x59:version") + v3 = self._cfg.getvar("%x50Y:version") + v4 = self._cfg.getvar("%x50%x59:version") + self.assertEqual(v1, v2) + self.assertEqual(v1, v3) + self.assertEqual(v1, v4) if __name__ == "__main__": unittest.main()