summaryrefslogtreecommitdiff
path: root/cherrypy/test/test_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'cherrypy/test/test_config.py')
-rw-r--r--cherrypy/test/test_config.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/cherrypy/test/test_config.py b/cherrypy/test/test_config.py
index f9831b12..491321dd 100644
--- a/cherrypy/test/test_config.py
+++ b/cherrypy/test/test_config.py
@@ -269,3 +269,31 @@ class VariableSubstitutionTests(unittest.TestCase):
self.assertEqual(cherrypy.config["my"]["my.dir"], "/some/dir/my/dir")
self.assertEqual(cherrypy.config["my"]
["my.dir2"], "/some/dir/my/dir/dir2")
+
+
+class CallablesInConfigTest(unittest.TestCase):
+ setup_server = staticmethod(setup_server)
+
+
+ def test_call_with_literal_dict(self):
+ from textwrap import dedent
+ conf = dedent("""
+ [my]
+ value = dict(**{'foo': 'bar'})
+ """)
+ fp = compat.StringIO(conf)
+ cherrypy.config.update(fp)
+ self.assertEqual(cherrypy.config['my']['value'], {'foo': 'bar'})
+
+ def test_call_with_kwargs(self):
+ from textwrap import dedent
+ conf = dedent("""
+ [my]
+ value = dict(test_suite="OVERRIDE", **cherrypy.config.environments)
+ """)
+ fp = compat.StringIO(conf)
+ cherrypy.config.update(fp)
+ env = cherrypy.config.environments.copy()
+ env['test_suite'] = 'OVERRIDE'
+ self.assertEqual(cherrypy.config['my']['value']['test_suite'], 'OVERRIDE')
+ self.assertEqual(cherrypy.config['my']['value'], env)