Mercurial > hgrepos > Python > libs > ConfigMix
annotate tests/test.py @ 116:c37fa787c022
More unittests for fetching namespaced variables and filters
| author | Franz Glasner <hg@dom66.de> |
|---|---|
| date | Thu, 29 Mar 2018 08:53:35 +0200 |
| parents | 5b667c252f8c |
| children | eefde3288fb8 |
| rev | line source |
|---|---|
| 93 | 1 # -*- coding: utf-8 -*- |
| 2 | |
| 3 import sys | |
| 4 import os | |
| 5 import unittest | |
|
116
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
6 import platform |
| 93 | 7 |
| 8 sys.path.insert( | |
| 9 0, | |
| 10 os.path.abspath( | |
| 11 os.path.normpath(os.path.join(os.path.dirname(__file__), "..")))) | |
| 12 | |
| 13 import configmix | |
| 14 import configmix.ini | |
| 15 import configmix.yaml | |
| 16 import configmix.py | |
| 17 from configmix.compat import u | |
| 18 | |
| 19 | |
| 20 TESTDATADIR = os.path.join( | |
| 21 os.path.abspath(os.path.dirname(__file__)), | |
| 22 "data") | |
| 23 | |
| 24 | |
| 25 class T01Basic(unittest.TestCase): | |
| 26 | |
| 27 """Check with low-level internal interfaces""" | |
| 28 | |
| 29 def __check_types(self, cfg): | |
| 30 self.assertEqual(u("the value"), | |
| 31 cfg.get("key1")) | |
| 32 self.assertTrue(isinstance(cfg.get("key1"), type(u('')))) | |
| 33 self.assertEqual(2, cfg.get("key2")) | |
| 34 self.assertEqual(5.7, cfg.get("key3")) | |
| 35 self.assertTrue(isinstance(cfg.get("key1"), type(u('')))) | |
| 36 self.assertTrue(cfg.get("key4")) | |
| 37 self.assertTrue(isinstance(cfg.get("key4"), bool)) | |
| 38 self.assertFalse(cfg.get("key5")) | |
| 39 self.assertTrue(isinstance(cfg.get("key5"), bool)) | |
| 95 | 40 self.assertEqual(255, cfg.get("key6")) |
| 93 | 41 |
|
97
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
42 def __check_tree(self, cfg): |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
43 self.assertEqual(u("in the root namespace"), |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
44 cfg.get("key1")) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
45 self.assertEqual(u("in the root namespace -- too"), |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
46 cfg.get("key2")) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
47 self.assertEqual(32, |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
48 cfg["tree1"]["key3"]) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
49 self.assertEqual(u("get this as `tree1.tree2.key4'"), |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
50 cfg["tree1"]["tree2"]["key4"]) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
51 self.assertTrue(cfg["tree1"]["tree2"]["key5"]) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
52 |
| 93 | 53 def test01_ini_types(self): |
| 54 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) | |
| 55 self.__check_types(cfg) | |
| 56 | |
| 57 def test02_py_types(self): | |
| 58 cfg = configmix.py.load(os.path.join(TESTDATADIR, "conf1.py")) | |
| 59 self.__check_types(cfg) | |
| 60 | |
| 61 def test03_yaml_types(self): | |
| 62 with open(os.path.join(TESTDATADIR, "conf1.yml"), "rt") as f: | |
| 63 cfg = configmix.yaml.safe_load(f) | |
| 64 self.__check_types(cfg) | |
| 65 | |
| 66 def test04_py_export_all(self): | |
| 67 # When __all__ is given only it's keys are exported | |
| 68 cfg = configmix.py.load(os.path.join(TESTDATADIR, "conf2.py")) | |
| 69 self.assertEqual(u("the next value"), cfg.get("key1")) | |
| 70 self.assertTrue(isinstance(cfg.get("key1"), type(u('')))) | |
| 71 self.assertTrue(cfg.get("key2") is None) | |
| 72 | |
| 73 def test05_py_hide_private(self): | |
| 74 # When no __all__ is given all symbols with leading "_" are hidden | |
| 75 cfg = configmix.py.load(os.path.join(TESTDATADIR, "conf3.py")) | |
| 76 self.assertEqual(u("the next value "), cfg.get("key1")) | |
| 77 self.assertTrue(isinstance(cfg.get("key1"), type(u('')))) | |
| 78 self.assertTrue(cfg.get("_key2") is None) | |
| 79 | |
|
97
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
80 def test06_ini_tree(self): |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
81 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf10.ini")) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
82 self.__check_tree(cfg) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
83 |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
84 def test07_py_tree(self): |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
85 cfg = configmix.py.load(os.path.join(TESTDATADIR, "conf10.py")) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
86 self.__check_tree(cfg) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
87 |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
88 def test08_yaml_tree(self): |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
89 with open(os.path.join(TESTDATADIR, "conf10.yml"), "rt") as f: |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
90 cfg = configmix.yaml.safe_load(f) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
91 self.__check_tree(cfg) |
|
1b4d95f60650
Build a tree-ish configuration from an INI style configuration file
Franz Glasner <hg@dom66.de>
parents:
95
diff
changeset
|
92 |
| 93 | 93 |
|
112
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
94 class _T02MixinLoadAndMerge: |
|
105
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
95 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
96 def test01_load(self): |
|
112
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
97 cfg = self._load( |
|
105
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
98 os.path.join(TESTDATADIR, "conf20.yml"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
99 os.path.join(TESTDATADIR, "conf21.yml")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
100 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
101 self.assertEqual(u("the_database_user"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
102 cfg.getvar_s("db.user.name")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
103 self.assertEqual(u("the-database-password"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
104 cfg.getvar_s("db.user.pwd")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
105 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
106 tmpdir = cfg.getvar_s("tmpdir") |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
107 if os.name == 'nt': |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
108 self.assertFalse(u('/') in tmpdir) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
109 self.assertEqual(os.path.normpath( |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
110 os.path.abspath(os.path.join(os.getcwd(), "tmp"))), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
111 tmpdir) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
112 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
113 self.assertEqual(u("anotherhost"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
114 cfg.getvar_s("db.locinfo.ro.hostname")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
115 self.assertEqual(u("localhost"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
116 cfg.getvar_s("db.locinfo.rw.hostname")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
117 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
118 self.assertEqual(5432, cfg.getvar_s("db.locinfo.ro.port")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
119 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
120 url = cfg.getvar_s("db.engines.ro.url") |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
121 self.assertEqual( |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
122 u("postgresql+psycopg2://the_database_user:the-database-password@anotherhost:5432/my_database_catalog"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
123 url) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
124 |
|
109
057d87d030f1
Test replacing lists by strings and replacing strings by lists
Franz Glasner <hg@dom66.de>
parents:
105
diff
changeset
|
125 self.assertEqual(u("not a list any more"), |
|
057d87d030f1
Test replacing lists by strings and replacing strings by lists
Franz Glasner <hg@dom66.de>
parents:
105
diff
changeset
|
126 cfg.getvar_s("test.List")) |
|
057d87d030f1
Test replacing lists by strings and replacing strings by lists
Franz Glasner <hg@dom66.de>
parents:
105
diff
changeset
|
127 |
|
057d87d030f1
Test replacing lists by strings and replacing strings by lists
Franz Glasner <hg@dom66.de>
parents:
105
diff
changeset
|
128 self.assertEqual(list(range(0, 3)), |
|
057d87d030f1
Test replacing lists by strings and replacing strings by lists
Franz Glasner <hg@dom66.de>
parents:
105
diff
changeset
|
129 cfg.getvar_s("test.Str")) |
|
057d87d030f1
Test replacing lists by strings and replacing strings by lists
Franz Glasner <hg@dom66.de>
parents:
105
diff
changeset
|
130 |
|
105
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
131 def test02_load_with_ini(self): |
|
112
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
132 cfg = self._load( |
|
105
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
133 os.path.join(TESTDATADIR, "conf20.yml"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
134 os.path.join(TESTDATADIR, "conf21.yml"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
135 os.path.join(TESTDATADIR, "conf22.ini")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
136 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
137 self.assertEqual(u("the_database_user_2"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
138 cfg.getvar_s("db.user.name")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
139 self.assertEqual(u("the-database-password-2"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
140 cfg.getvar_s("db.user.pwd")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
141 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
142 tmpdir = cfg.getvar_s("tmpdir") |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
143 self.assertEqual(u(os.getcwd()) + u("/tmp\\2"), tmpdir) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
144 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
145 self.assertEqual(u("3rd-host"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
146 cfg.getvar_s("db.locinfo.ro.hostname")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
147 self.assertEqual(u("localhost"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
148 cfg.getvar_s("db.locinfo.rw.hostname")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
149 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
150 self.assertEqual(5432, cfg.getvar_s("db.locinfo.ro.port")) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
151 |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
152 url = cfg.getvar_s("db.engines.ro.url") |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
153 self.assertEqual( |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
154 u("postgresql+psycopg2://the_database_user_2:the-database-password-2@3rd-host:5432/my_database_catalog"), |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
155 url) |
|
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
156 |
|
116
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
157 def test03_namespace(self): |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
158 cfg = self._load( |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
159 os.path.join(TESTDATADIR, "conf20.yml"), |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
160 os.path.join(TESTDATADIR, "conf21.yml"), |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
161 os.path.join(TESTDATADIR, "conf22.ini")) |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
162 self.assertEqual(u(os.getcwd()), cfg.getvar("OS:cwd")) |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
163 self.assertEqual(u(platform.python_version()), |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
164 cfg.getvar_s("PY:version")) |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
165 |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
166 def test04_no_filter(self): |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
167 cfg = self._load( |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
168 os.path.join(TESTDATADIR, "conf20.yml"), |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
169 os.path.join(TESTDATADIR, "conf21.yml"), |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
170 os.path.join(TESTDATADIR, "conf22.ini")) |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
171 |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
172 def _look(): |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
173 return cfg.getvar("OS:cwd|upper") |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
174 |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
175 self.assertRaises(KeyError, _look) |
|
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
176 |
|
105
1c2f8a96dec2
Unittests with some real-worl-examples of .yml and .ini configuration files
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
97
diff
changeset
|
177 |
|
112
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
178 class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase): |
|
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
179 |
|
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
180 def setUp(self): |
|
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
181 self._load = configmix.load |
|
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
182 |
|
116
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
183 def test05_identity(self): |
|
113
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
184 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
185 cfg2 = configmix.merge(cfg, None) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
186 self.assertEqual(id(cfg), id(cfg2)) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
187 |
|
116
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
188 def test06_identity(self): |
|
113
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
189 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
190 cfg2 = configmix.merge(cfg, {}) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
191 self.assertEqual(id(cfg), id(cfg2)) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
192 |
|
112
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
193 |
|
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
194 class T03SafeLoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase): |
|
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
195 |
|
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
196 def setUp(self): |
|
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
197 self._load = configmix.safe_load |
|
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
198 |
|
116
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
199 def test05_deepcopy(self): |
|
113
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
200 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
201 cfg2 = configmix.safe_merge(cfg, None) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
202 self.assertNotEqual(id(cfg), id(cfg2)) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
203 |
|
116
c37fa787c022
More unittests for fetching namespaced variables and filters
Franz Glasner <hg@dom66.de>
parents:
113
diff
changeset
|
204 def test06_deepcopy(self): |
|
113
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
205 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
206 cfg2 = configmix.safe_merge(cfg, {}) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
207 self.assertNotEqual(id(cfg), id(cfg2)) |
|
5b667c252f8c
Test whether safe_merge really returns a deepcopy in the initial case and when not really merging
Franz Glasner <hg@dom66.de>
parents:
112
diff
changeset
|
208 |
|
112
c50ad93eb5dc
Implemented a "safe_load()" to load with safe merging
Franz Glasner <hg@dom66.de>
parents:
109
diff
changeset
|
209 |
| 93 | 210 if __name__ == "__main__": |
| 211 unittest.main() |
