diff tests/test.py @ 320:98490375d90c

Allow variable name quoting to be used in .getvar() and .getvar_s() and references
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 06 May 2021 09:45:51 +0200
parents 043a6412be3c
children aac9dcea3446
line wrap: on
line diff
--- a/tests/test.py	Wed May 05 23:12:01 2021 +0200
+++ b/tests/test.py	Thu May 06 09:45:51 2021 +0200
@@ -710,5 +710,71 @@
         self.assertEqual("{{testref.here.params.params.evalex}}", v2)
 
 
+class T07Quoting(unittest.TestCase):
+
+    def setUp(self):
+        self._reset()
+        self._cfg = configmix.load(os.path.join(TESTDATADIR, "quoting.yml"))
+
+    def tearDown(self):
+        self._reset()
+
+    def _reset(self):
+        configmix.clear_assoc()
+        for pat, fmode in configmix.DEFAULT_ASSOC:
+            configmix.set_assoc(pat, fmode)
+
+    def test_getvar(self):
+        self.assertEqual(
+            "value",
+            self._cfg.getvar("%x3a%x7c%x25%x2e.%x2e.%x3a.%x25.%x7c./"))
+        self.assertEqual(
+            "value",
+            self._cfg.getvar(
+                "%u003a%u007c%u0025%u002e.%u002e.%u003a.%u0025.%u007c./"))
+        self.assertEqual(
+            "value",
+            self._cfg.getvar(
+                "%U0000003a%U0000007c%U00000025%U0000002e.%U0000002e.%U0000003a.%U00000025.%U0000007c./"))
+
+    def test_getvar_s(self):
+        self.assertEqual(
+            "value",
+            self._cfg.getvar_s("%x3a%x7c%x25%x2e.%x2e.%x3a.%x25.%x7c./"))
+        self.assertEqual(
+            "value",
+            self._cfg.getvar_s(
+                "%u003a%u007c%u0025%u002e.%u002e.%u003a.%u0025.%u007c./"))
+        self.assertEqual(
+            "value",
+            self._cfg.getvar_s(
+                "%U0000003a%U0000007c%U00000025%U0000002e.%U0000002e.%U0000003a.%U00000025.%U0000007c./"))
+
+    def test_getvarl(self):
+        self.assertEqual(
+            "value",
+            self._cfg.getvarl(":|%.", ".", ":", "%", "|", "/"))
+
+    def test_getvarl_s(self):
+        self.assertEqual(
+            "value",
+            self._cfg.getvarl_s(":|%.", ".", ":", "%", "|", "/"))
+
+    def test_interpolation1(self):
+        self.assertEqual(
+            "value",
+            self._cfg.getvarl_s("events", "qc-2021.1-5G-summit", "xname"))
+
+    def test_interpolation2(self):
+        self.assertEqual(
+            "value",
+            self._cfg.getvar_s("events.qc-2021%x2e1-5G-summit.xname"))
+
+    def test_reference(self):
+        self.assertEqual(
+            "value",
+            self._cfg.getvar_s("events.qc-2021%x2e1-5G-summit.xref"))
+
+
 if __name__ == "__main__":
     unittest.main()