[Kimchi-devel] [PATCH] Fix some test cases on test_config.py.in for Wok and Kimchi

Aline Manera alinefm at linux.vnet.ibm.com
Wed Oct 14 00:37:19 UTC 2015


Some tests in plugin/kimchi/tests/test_config.py.in were related to Wok
configuration, so move those tests to Wok.

Also improve test_config.py.in on Wok to also verify the UI configuration.

And fix some test cases on Kimchi related test_config.py.in

Signed-off-by: Aline Manera <alinefm at linux.vnet.ibm.com>
---
 src/wok/config.py.in                           |  31 ++--
 src/wok/plugins/kimchi/tests/test_config.py.in | 206 +++++++------------------
 tests/test_config.py.in                        | 115 +++++++++++++-
 3 files changed, 182 insertions(+), 170 deletions(-)

diff --git a/src/wok/config.py.in b/src/wok/config.py.in
index b33fb6b..b17d1ed 100644
--- a/src/wok/config.py.in
+++ b/src/wok/config.py.in
@@ -55,6 +55,8 @@ FONTS_PATH = {
     ]
 }
 
+SESSIONSTIMEOUT = 10    # session time out is 10 minutes
+
 
 def get_object_store():
     return os.path.join(paths.state_dir, 'objectstore')
@@ -88,6 +90,13 @@ class Paths(object):
             self.plugins_dir = self.add_prefix('src/wok/plugins')
             self.mo_dir = self.add_prefix('mo')
 
+        for font in FONT_FILES.keys():
+            paths = FONTS_PATH[font]
+            for path in paths:
+                font_file = os.path.join(path, FONT_FILES[font][0])
+                if os.path.exists(font_file):
+                    setattr(self, '%s_dir' % font, path)
+
     def get_prefix(self):
         if __file__.startswith("/"):
             base = os.path.dirname(__file__)
@@ -147,24 +156,20 @@ class UIConfig(dict):
                     'tools.expires.secs': CACHEEXPIRES})
 
         for font, files in FONT_FILES.iteritems():
-            paths = FONTS_PATH[font]
-            for path in paths:
-                for filename in files:
-                    font_file = os.path.join(path, filename)
-                    if os.path.exists(font_file):
-                        ui_configs['/fonts/%s' % filename] = {
-                            'tools.staticfile.on': True,
-                            'tools.staticfile.filename': font_file,
-                            'tools.wokauth.on': False,
-                            'tools.nocache.on': False}
+            font_dir = getattr(paths, "%s_dir" % font)
+            for filename in files:
+                font_file = os.path.join(font_dir, filename)
+                if os.path.exists(font_file):
+                    ui_configs['/fonts/%s' % filename] = {
+                        'tools.staticfile.on': True,
+                        'tools.staticfile.filename': font_file,
+                        'tools.wokauth.on': False,
+                        'tools.nocache.on': False}
 
         self.update(ui_configs)
 
 
 class WokConfig(dict):
-    # session time out is 10 minutes
-    SESSIONSTIMEOUT = 10
-
     wok_config = {
         '/': {
             'tools.trailing_slash.on': False,
diff --git a/src/wok/plugins/kimchi/tests/test_config.py.in b/src/wok/plugins/kimchi/tests/test_config.py.in
index e4db15a..fb23b5c 100644
--- a/src/wok/plugins/kimchi/tests/test_config.py.in
+++ b/src/wok/plugins/kimchi/tests/test_config.py.in
@@ -20,7 +20,8 @@
 import unittest
 from cherrypy.lib.reprconf import Parser
 
-from wok.config import Paths, PluginPaths, WokConfig
+from wok.config import CACHEEXPIRES, SESSIONSTIMEOUT
+from wok.config import Paths, PluginPaths
 
 from wok.plugins.kimchi.config import get_debugreports_path
 from wok.plugins.kimchi.config import get_screenshot_path
@@ -47,28 +48,6 @@ class ConfigTests(unittest.TestCase):
                 expected = usr_local + expected
         self.assertEquals(actual, expected)
 
-    def test_installed_paths(self):
-        Paths.get_prefix = lambda self: '@datadir@/wok'
-        paths = Paths()
-        self.assertInstalledPath(paths.state_dir, '/var/lib/wok')
-        self.assertInstalledPath(paths.log_dir, '/var/log/wok')
-        self.assertInstalledPath(paths.conf_dir, '/etc/wok')
-        self.assertInstalledPath(paths.src_dir, '@wokdir@')
-        self.assertInstalledPath(paths.plugins_dir, '@wokdir@/plugins')
-        self.assertInstalledPath(paths.ui_dir, '@datadir@/wok/ui')
-        self.assertInstalledPath(paths.mo_dir, '@prefix@/share/locale')
-
-    def test_uninstalled_paths(self):
-        Paths.get_prefix = lambda self: '/home/user/wok'
-        paths = Paths()
-        self.assertEquals(paths.state_dir, '/home/user/wok/data')
-        self.assertEquals(paths.log_dir, '/home/user/wok/log')
-        self.assertEquals(paths.conf_dir, '/home/user/wok/src')
-        self.assertEquals(paths.src_dir, '/home/user/wok/src/wok')
-        self.assertEquals(paths.plugins_dir, '/home/user/wok/plugins')
-        self.assertEquals(paths.ui_dir, '/home/user/wok/ui')
-        self.assertEquals(paths.mo_dir, '/home/user/wok/mo')
-
     def test_installed_plugin_paths(self):
         KimchiPaths.get_prefix = lambda self: '@datadir@/wok'
         paths = KimchiPaths()
@@ -81,100 +60,27 @@ class ConfigTests(unittest.TestCase):
         self.assertInstalledPath(paths.mo_dir, '@prefix@/share/locale')
 
     def test_uninstalled_plugin_paths(self):
-        KimchiPaths.get_prefix = lambda self: '/home/user/wok'
         paths = KimchiPaths()
-        self.assertEquals(paths.conf_dir, '/home/user/wok/plugins/kimchi')
-        self.assertEquals(
-            paths.conf_file, '/home/user/wok/plugins/kimchi/kimchi.conf')
-        self.assertEquals(paths.src_dir, '/home/user/wok/plugins/kimchi')
-        self.assertEquals(paths.ui_dir, '/home/user/wok/plugins/kimchi/ui')
-        self.assertEquals(paths.mo_dir, '/home/user/wok/plugins/kimchi/mo')
-
-    def test_wok_config(self):
-        Paths.get_prefix = PluginPaths.get_prefix = get_prefix
-        paths = Paths()
-        CACHEEXPIRES = 31536000
-        SESSIONSTIMEOUT = 10
-        configObj = {
-            '/': {
-                'tools.trailing_slash.on': False,
-                'request.methods_with_bodies': ('POST', 'PUT'),
-                'tools.nocache.on': True,
-                'tools.proxy.on': True,
-                'tools.sessions.on': True,
-                'tools.sessions.name': 'wok',
-                'tools.sessions.secure': True,
-                'tools.sessions.httponly': True,
-                'tools.sessions.locking': 'explicit',
-                'tools.sessions.storage_type': 'ram',
-                'tools.sessions.timeout': SESSIONSTIMEOUT,
-                'tools.wokauth.on': False
-            },
-            '/base64/jquery.base64.js': {
-                'tools.staticfile.on': True,
-                'tools.staticfile.filename': '%s/base64/jquery.base64.js' %
-                                             paths.ui_dir,
-                'tools.nocache.on': True,
-            },
-            '/wok-ui.html': {
-                'tools.wokauth.on': True
-            },
-            '/css': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': '%s/ui/css' % paths.prefix,
-                'tools.expires.on': True,
-                'tools.expires.secs': CACHEEXPIRES,
-                'tools.nocache.on': False,
-                'tools.wokauth.on': False
-            },
-            '/js': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': '%s/ui/js' % paths.prefix,
-                'tools.expires.on': True,
-                'tools.expires.secs': CACHEEXPIRES,
-                'tools.nocache.on': False,
-                'tools.wokauth.on': False
-            },
-            '/libs': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': '%s/ui/libs' % paths.prefix,
-                'tools.expires.on': True,
-                'tools.expires.secs': CACHEEXPIRES,
-                'tools.nocache.on': False,
-                'tools.wokauth.on': False
-            },
-            '/images': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': '%s/ui/images' % paths.prefix,
-                'tools.nocache.on': False,
-                'tools.wokauth.on': False
-            },
-            '/favicon.ico': {
-                'tools.staticfile.on': True,
-                'tools.staticfile.filename':
-                '%s/images/logo.ico' % paths.ui_dir
-            },
-            '/robots.txt': {
-                'tools.staticfile.on': True,
-                'tools.staticfile.filename': '%s/robots.txt' % paths.ui_dir
-            },
-        }
-
-        wok_config = WokConfig()
-        self.assertEquals(wok_config, configObj)
+        prefix = paths.prefix
+        self.assertEquals(paths.conf_dir, '%s/src/wok/plugins/kimchi' % prefix)
+        self.assertEquals(paths.conf_file,
+                          '%s/src/wok/plugins/kimchi/kimchi.conf' % prefix)
+        self.assertEquals(paths.src_dir, '%s/src/wok/plugins/kimchi' % prefix)
+        self.assertEquals(paths.ui_dir,
+                          '%s/src/wok/plugins/kimchi/ui' % prefix)
+        self.assertEquals(paths.mo_dir,
+                          '%s/src/wok/plugins/kimchi/mo' % prefix)
 
     def test_kimchi_config(self):
         KimchiPaths.get_prefix = PluginPaths.get_prefix = get_prefix
         paths = KimchiPaths()
         pluginPrefix = paths.add_prefix(paths.plugin_dir)
-        CACHEEXPIRES = 31536000
-        SESSIONSTIMEOUT = 10
         configObj = {
             'wok': {
+                'plugin_class': 'KimchiRoot',
                 'enable': True,
-                'plugin_class': "KimchiRoot",
-                'uri': '/%s' % paths.plugin_dir,
-                'extra_auth_api_class': "control.sub_nodes"
+                'uri': '/plugins/kimchi',
+                'extra_auth_api_class': 'control.sub_nodes'
             },
             '/': {
                 'tools.trailing_slash.on': False,
@@ -191,79 +97,73 @@ class ConfigTests(unittest.TestCase):
                 'tools.wokauth.on': True
             },
             '/novnc': {
-                'tools.staticdir.on': True,
+                'tools.wokauth.on': True,
+                'tools.nocache.on': True,
                 'tools.staticdir.dir': paths.novnc_dir,
+                'tools.staticdir.on': True
+            },
+            '/spice-html5': {
+                'tools.wokauth.on': True,
                 'tools.nocache.on': True,
-                'tools.wokauth.on': True
+                'tools.staticdir.dir': paths.spice_dir,
+                'tools.staticdir.on': True
             },
             '/spice_auto.html': {
+                'tools.wokauth.on': True,
+                'tools.nocache.on': True,
                 'tools.staticfile.on': True,
                 'tools.staticfile.filename': paths.spice_file,
-                'tools.nocache.on': True,
-                'tools.wokauth.on': True
-            },
-            '/spice-html5': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': paths.spice_dir,
-                'tools.nocache.on': True
             },
             '/spice-html5/spice.css': {
-                'tools.staticfile.on': True,
-                'tools.staticfile.filename': paths.spice_css_file,
+                'tools.wokauth.on': True,
                 'tools.nocache.on': True,
-            },
-            '/ui/config/tab-ext.xml': {
                 'tools.staticfile.on': True,
-                'tools.staticfile.filename': '%s/ui/config/tab-ext.xml' %
-                pluginPrefix,
-                'tools.nocache.on': True
+                'tools.staticfile.filename': paths.spice_css_file,
             },
-            '/css': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': '%s/ui/css' % pluginPrefix,
-                'tools.expires.on': True,
-                'tools.expires.secs': CACHEEXPIRES,
-                'tools.nocache.on': False,
-                'tools.wokauth.on': False
+            '/help': {
+                'tools.nocache.on': True,
+                'tools.staticdir.dir': '%s/ui/pages/help' % pluginPrefix,
+                'tools.staticdir.on': True
             },
             '/js': {
-                'tools.staticdir.on': True,
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
                 'tools.staticdir.dir': '%s/ui/js' % pluginPrefix,
                 'tools.expires.on': True,
                 'tools.expires.secs': CACHEEXPIRES,
-                'tools.nocache.on': False,
-                'tools.wokauth.on': False
+                'tools.staticdir.on': True
             },
-            '/libs': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': '%s/ui/libs' % pluginPrefix,
+            '/css': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticdir.dir': '%s/ui/css' % pluginPrefix,
                 'tools.expires.on': True,
                 'tools.expires.secs': CACHEEXPIRES,
-                'tools.nocache.on': False,
-                'tools.wokauth.on': False,
+                'tools.staticdir.on': True
             },
             '/images': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': '%s/ui/images' % pluginPrefix,
+                'tools.wokauth.on': False,
                 'tools.nocache.on': False,
-                'tools.wokauth.on': False
+                'tools.staticdir.dir': '%s/ui/images' % pluginPrefix,
+                'tools.staticdir.on': True
             },
             '/data/screenshots': {
-                'tools.staticdir.on': True,
+                'tools.nocache.on': False,
                 'tools.staticdir.dir': get_screenshot_path(),
-                'tools.nocache.on': False
+                'tools.staticdir.on': True
+            },
+            '/ui/config/tab-ext.xml': {
+                'tools.nocache.on': True,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename': '%s/ui/config/tab-ext.xml' %
+                pluginPrefix,
             },
             '/data/debugreports': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': get_debugreports_path(),
-                'tools.nocache.on': False,
                 'tools.wokauth.on': True,
-                'tools.staticdir.content_types': {'xz': 'application/x-xz'}
-            },
-            '/help': {
-                'tools.staticdir.on': True,
-                'tools.staticdir.dir': '%s/ui/pages/help' % pluginPrefix,
-                'tools.nocache.on': True
+                'tools.nocache.on': False,
+                'tools.staticdir.dir': get_debugreports_path(),
+                'tools.staticdir.content_types': {'xz': 'application/x-xz'},
+                'tools.staticdir.on': True
             }
         }
 
diff --git a/tests/test_config.py.in b/tests/test_config.py.in
index b4b46e1..d1a8576 100644
--- a/tests/test_config.py.in
+++ b/tests/test_config.py.in
@@ -19,7 +19,7 @@
 
 import unittest
 
-from wok.config import Paths, WokConfig
+from wok.config import CACHEEXPIRES, Paths, WokConfig
 
 
 get_prefix = None
@@ -94,14 +94,121 @@ class ConfigTests(unittest.TestCase):
             },
             '/favicon.ico': {
                 'tools.staticfile.on': True,
-                'tools.staticfile.filename':
-                '%s/images/logo.ico' % paths.ui_dir
+                'tools.staticfile.filename': '%s/images/logo.ico' %
+                                             paths.ui_dir
             },
             '/robots.txt': {
                 'tools.staticfile.on': True,
                 'tools.staticfile.filename': '%s/robots.txt' % paths.ui_dir
             },
+            '/libs': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticdir.dir': '%s/ui/libs' % paths.prefix,
+                'tools.expires.on': True,
+                'tools.expires.secs': CACHEEXPIRES,
+                'tools.staticdir.on': True
+            },
+            '/css': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticdir.dir': '%s/ui/css' % paths.prefix,
+                'tools.expires.on': True,
+                'tools.expires.secs': CACHEEXPIRES,
+                'tools.staticdir.on': True
+            },
+            '/js': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticdir.dir': '%s/ui/js' % paths.prefix,
+                'tools.expires.on': True,
+                'tools.expires.secs': CACHEEXPIRES,
+                'tools.staticdir.on': True
+            },
+            '/images': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticdir.dir': '%s/ui/images' % paths.prefix,
+                'tools.staticdir.on': True
+            },
+            '/fonts/fontawesome-webfont.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/fontawesome-webfont.ttf' % paths.fontawesome_dir
+            },
+            '/fonts/OpenSans-LightItalic.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-LightItalic.ttf' % paths.opensans_dir
+            },
+            '/fonts/OpenSans-Bold.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-Bold.ttf' % paths.opensans_dir
+            },
+            '/fonts/OpenSans-Italic.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-Italic.ttf' % paths.opensans_dir
+            },
+            '/fonts/OpenSans-Semibold.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-Semibold.ttf' % paths.opensans_dir
+            },
+            '/fonts/OpenSans-Light.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-Light.ttf' % paths.opensans_dir
+            },
+            '/fonts/OpenSans-SemiboldItalic.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-SemiboldItalic.ttf' % paths.opensans_dir
+            },
+            '/fonts/OpenSans-ExtraBold.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-ExtraBold.ttf' % paths.opensans_dir
+            },
+            '/fonts/OpenSans-BoldItalic.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-BoldItalic.ttf' % paths.opensans_dir
+            },
+            '/fonts/OpenSans-ExtraBoldItalic.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-ExtraBoldItalic.ttf' % paths.opensans_dir
+            },
+            '/fonts/OpenSans-Regular.ttf': {
+                'tools.wokauth.on': False,
+                'tools.nocache.on': False,
+                'tools.staticfile.on': True,
+                'tools.staticfile.filename':
+                    '%s/OpenSans-Regular.ttf' % paths.opensans_dir
+            }
         }
 
-        wok_config = WokConfig.wok_config
+        wok_config = WokConfig()
         self.assertEquals(wok_config, configObj)
-- 
2.1.0




More information about the Kimchi-devel mailing list