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

Paulo Ricardo Paz Vital pvital at linux.vnet.ibm.com
Wed Oct 14 14:20:04 UTC 2015


Tested-By: Paulo Vital <pvital at linux.vnet.ibm.com>
Reviewed-By: Paulo
Vital <pvital at linux.vnet.ibm.com>

On Tue, 2015-10-13 at 21:37 -0300, Aline Manera wrote:
> 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@/plugin
> s')
> -        self.assertInstalledPath(paths.ui_dir, '@datadir@/wok/ui')
> -        self.assertInstalledPath(paths.mo_dir, '@prefix@/share/local
> e')
> -
> -    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/local
> e')
> 
>      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)




More information about the Kimchi-devel mailing list