diff tests/test.py @ 756:cabd1046d95f

Extract new config methods extract_new_config
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 04 Dec 2023 09:20:30 +0100
parents 04c5a3a36499
children 3eb2c451026b
line wrap: on
line diff
--- a/tests/test.py	Thu Nov 30 21:11:47 2023 +0100
+++ b/tests/test.py	Mon Dec 04 09:20:30 2023 +0100
@@ -2606,5 +2606,35 @@
                 b":")
 
 
+class T11NewConfig(unittest.TestCase):
+
+    def setUp(self):
+        self._cfg = configmix.load(
+            os.path.join(TESTDATADIR, "extract-new-config.yml"))
+
+    def tearDown(self):
+        self._cfg = None
+
+    def test_extract_new_copy(self):
+        nc = self._cfg.extract_new_config("globals")
+        self.assertEqual(u(r"E:\APPS64\PostgreSQL-9.4\all\bin"),
+                         nc.getvarl_s(u"PATH"))
+        self.assertEqual(
+            u("postgresql+psycopg2://My%20Username:My%20Password@localhost:5432/postgres"),
+            nc.getvarl_s("engine0", "url"))
+        self.assertIsInstance(self._cfg.getvarl("parts"), list)
+        with self.assertRaises(KeyError):
+            nc.getvarl("parts")
+
+    def test_extract_new_copy_is_deepcopy(self):
+        nc = self._cfg.extract_new_config("globals")
+        user2 = nc.getvarl(u("user2"))
+        user2[u("pwd")] = u("new passphrase")
+        self.assertEqual(u("new passphrase"),
+                         nc.getvarl(u("user2"), u("pwd")))
+        self.assertEqual(u("abcQQQ123456"),
+                         self._cfg.getvarl(u("globals"), u("user2"), u("pwd")))
+
+
 if __name__ == "__main__":
     unittest.main()