[Kimchi-devel] [wok] Fix bug #724: Fix test_kimchi_config
Aline Manera
alinefm at linux.vnet.ibm.com
Tue Sep 8 15:38:36 UTC 2015
I could not apply this patch set in the current wok branch.
Could you rebase and resend?
On 03/09/2015 10:46, Lucio Correia wrote:
> This patch fixes Kimchi config test and adds Wok config
> test.
>
> IMPORTANT: this patch is based on Wok V3, but will conflict with Samuel's
> [PATCH 1/5] [WOK] Removing fontello references and unused CSS and old JS. The
> fontello occurrences in test_config.py.in should be replaced with fontawesome.
>
> Signed-off-by: Lucio Correia <luciojhc at linux.vnet.ibm.com>
> ---
> plugins/kimchi/config.py.in | 6 +-
> plugins/kimchi/kimchi.conf | 8 --
> plugins/kimchi/tests/test_config.py.in | 146 ++++++++++++++++++++++------
> plugins/kimchi/ui/images/Makefile.am | 2 +-
> plugins/kimchi/ui/images/logo.ico | Bin 1214 -> 0 bytes
> plugins/kimchi/ui/pages/help/dita-help.xsl | 2 +-
> src/wok/config.py.in | 8 ++
> 7 files changed, 131 insertions(+), 41 deletions(-)
> delete mode 100644 plugins/kimchi/ui/images/logo.ico
>
> diff --git a/plugins/kimchi/config.py.in b/plugins/kimchi/config.py.in
> index 80b72bd..2974e7e 100644
> --- a/plugins/kimchi/config.py.in
> +++ b/plugins/kimchi/config.py.in
> @@ -23,7 +23,7 @@ import os
> import platform
> import threading
>
> -from wok.config import PluginPaths
> +from wok.config import PluginConfig, PluginPaths
> from wok.xmlutils.utils import xpath_get_text
>
> kimchiLock = threading.Lock()
> @@ -103,9 +103,9 @@ class KimchiPaths(PluginPaths):
> kimchiPaths = KimchiPaths()
>
>
> -class KimchiConfig(dict):
> +class KimchiConfig(PluginConfig):
> def __init__(self):
> - super(KimchiConfig, self).__init__(self)
> + super(KimchiConfig, self).__init__('kimchi')
>
> custom_config = {
> '/novnc': {
> diff --git a/plugins/kimchi/kimchi.conf b/plugins/kimchi/kimchi.conf
> index 78f4f3f..1bf78e4 100644
> --- a/plugins/kimchi/kimchi.conf
> +++ b/plugins/kimchi/kimchi.conf
> @@ -30,14 +30,6 @@ tools.nocache.on = False
> tools.wokauth.on = True
> tools.staticdir.content_types = {'xz': 'application/x-xz'}
>
> -[/favicon.ico]
> -tools.staticfile.on = True
> -tools.staticfile.filename = wok.config.PluginPaths('kimchi').ui_dir + '/images/logo.ico'
> -
> -[/robots.txt]
> -tools.staticfile.on = True
> -tools.staticfile.filename = wok.config.PluginPaths('kimchi').ui_dir + '/robots.txt'
> -
> [/help]
> tools.staticdir.on = True
> tools.staticdir.dir = wok.config.PluginPaths('kimchi').ui_dir + '/pages/help'
> diff --git a/plugins/kimchi/tests/test_config.py.in b/plugins/kimchi/tests/test_config.py.in
> index 6bca3df..7bd28bc 100644
> --- a/plugins/kimchi/tests/test_config.py.in
> +++ b/plugins/kimchi/tests/test_config.py.in
> @@ -20,11 +20,11 @@
> import unittest
> from cherrypy.lib.reprconf import Parser
>
> -from wok.config import Paths
> +from wok.config import Paths, PluginPaths, WokConfig
>
> from wok.plugins.kimchi.config import get_debugreports_path
> from wok.plugins.kimchi.config import get_screenshot_path
> -from wok.plugins.kimchi.config import KimchiPaths
> +from wok.plugins.kimchi.config import KimchiConfig, KimchiPaths
>
> from wok.plugins.kimchi import config as kconfig
>
> @@ -92,8 +92,9 @@ class ConfigTests(unittest.TestCase):
> self.assertEquals(paths.ui_dir, '/home/user/wok/plugins/kimchi/ui')
> self.assertEquals(paths.mo_dir, '/home/user/wok/plugins/kimchi/mo')
>
> - def test_kimchi_config(self):
> - Paths.get_prefix = KimchiPaths.get_prefix = get_prefix
> + def test_wok_config(self):
> + Paths.get_prefix = PluginPaths.get_prefix = get_prefix
> + paths = Paths()
> CACHEEXPIRES = 31536000
> SESSIONSTIMEOUT = 10
> configObj = {
> @@ -111,56 +112,154 @@ class ConfigTests(unittest.TestCase):
> 'tools.sessions.timeout': SESSIONSTIMEOUT,
> 'tools.wokauth.on': False
> },
> + '/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
> + },
> + '/fontello': {
> + 'tools.staticdir.on': True,
> + 'tools.staticdir.dir': '%s/ui/fontello' % 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)
> +
> +
> + 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': {
> + 'enable': True,
> + 'plugin_class': "KimchiRoot",
> + 'uri': '/%s' % paths.plugin_dir,
> + 'extra_auth_api_class': "control.sub_nodes"
> + },
> + '/': {
> + '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': True
> + },
> '/novnc': {
> 'tools.staticdir.on': True,
> - 'tools.staticdir.dir': KimchiPaths().novnc_dir,
> + 'tools.staticdir.dir': paths.novnc_dir,
> 'tools.nocache.on': True,
> 'tools.wokauth.on': True
> },
> '/spice_auto.html': {
> 'tools.staticfile.on': True,
> - 'tools.staticfile.filename': KimchiPaths().spice_file,
> + 'tools.staticfile.filename': paths.spice_file,
> 'tools.nocache.on': True,
> 'tools.wokauth.on': True
> },
> '/spice-html5': {
> 'tools.staticdir.on': True,
> - 'tools.staticdir.dir': KimchiPaths().spice_dir,
> + 'tools.staticdir.dir': paths.spice_dir,
> 'tools.nocache.on': True
> },
> '/spice-html5/spice.css': {
> 'tools.staticfile.on': True,
> - 'tools.staticfile.filename': KimchiPaths().spice_css_file,
> + 'tools.staticfile.filename': paths.spice_css_file,
> 'tools.nocache.on': True,
> },
> - '/kimchi-ui.html': {
> - 'tools.wokauth.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
> },
> '/css': {
> 'tools.staticdir.on': True,
> - 'tools.staticdir.dir': '%s/ui/css' % KimchiPaths().prefix,
> + 'tools.staticdir.dir': '%s/ui/css' % pluginPrefix,
> 'tools.expires.on': True,
> 'tools.expires.secs': CACHEEXPIRES,
> - 'tools.nocache.on': False
> + 'tools.nocache.on': False,
> + 'tools.wokauth.on': False
> + },
> + '/fontello': {
> + 'tools.staticdir.on': True,
> + 'tools.staticdir.dir': '%s/ui/fontello' % pluginPrefix,
> + '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' % KimchiPaths().prefix,
> + 'tools.staticdir.dir': '%s/ui/js' % pluginPrefix,
> 'tools.expires.on': True,
> 'tools.expires.secs': CACHEEXPIRES,
> - 'tools.nocache.on': False
> + 'tools.nocache.on': False,
> + 'tools.wokauth.on': False
> },
> '/libs': {
> 'tools.staticdir.on': True,
> - 'tools.staticdir.dir': '%s/ui/libs' % KimchiPaths().prefix,
> + 'tools.staticdir.dir': '%s/ui/libs' % pluginPrefix,
> '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' % KimchiPaths().prefix,
> - 'tools.nocache.on': False
> + 'tools.staticdir.dir': '%s/ui/images' % pluginPrefix,
> + 'tools.nocache.on': False,
> + 'tools.wokauth.on': False
> },
> '/data/screenshots': {
> 'tools.staticdir.on': True,
> @@ -174,22 +273,13 @@ class ConfigTests(unittest.TestCase):
> 'tools.wokauth.on': True,
> 'tools.staticdir.content_types': {'xz': 'application/x-xz'}
> },
> - '/favicon.ico': {
> - 'tools.staticfile.on': True,
> - 'tools.staticfile.filename':
> - '%s/images/logo.ico' % KimchiPaths().ui_dir
> - },
> - '/robots.txt': {
> - 'tools.staticfile.on': True,
> - 'tools.staticfile.filename': '%s/robots.txt' % KimchiPaths().ui_dir
> - },
> '/help': {
> 'tools.staticdir.on': True,
> - 'tools.staticdir.dir': '%s/ui/pages/help' % KimchiPaths().prefix,
> - 'tools.staticdir.index': 'en_US/index.html',
> + 'tools.staticdir.dir': '%s/ui/pages/help' % pluginPrefix,
> 'tools.nocache.on': True
> }
> }
>
> kimchi_config = Parser().dict_from_file(KimchiPaths().conf_file)
> + kimchi_config.update(KimchiConfig())
> self.assertEquals(kimchi_config, configObj)
> diff --git a/plugins/kimchi/ui/images/Makefile.am b/plugins/kimchi/ui/images/Makefile.am
> index 0562e6a..ca3ee6e 100644
> --- a/plugins/kimchi/ui/images/Makefile.am
> +++ b/plugins/kimchi/ui/images/Makefile.am
> @@ -19,4 +19,4 @@ SUBDIRS = theme-default
>
> imagedir = $(datadir)/wok/plugins/kimchi/ui/images
>
> -dist_image_DATA = *.png *.ico
> +dist_image_DATA = *.png
> diff --git a/plugins/kimchi/ui/images/logo.ico b/plugins/kimchi/ui/images/logo.ico
> deleted file mode 100644
> index 446143f066a60f479b2cb8f8d04ab3c97ff60e56..0000000000000000000000000000000000000000
> GIT binary patch
> literal 0
> HcmV?d00001
>
> literal 1214
> zcma)*3rLeu6vyu=X_;nPV)$&PPF)r(wTQ|dTGOUtnOdf0mZ=cR#99xbub1{BqnD9^
> z^Z>PV6h)fUny6#CN{3di2P{*h2ek at Oq0a4o*=I}2Iv?krbAR`oKi_vQA0faVCr83o
> zF{!X2#Dx$Nz}$(sm^sgR<Jj30yCMGpMl1z837jm3H1$<DU4IV>Tbdw<FM-;Hi<#et
> z=I}n~iB^qh8{XzCNyvT<I;$&znmT~?eFXZgAE at Om?1h(6Iq+2e1-ca!zOAO7n3*};
> zXq6n?2kF<!f%cez;-Fgx4$e+xo{WR;oqhc_OW;#nF!Zm|JK}m8gi6aC+##`QA5PmJ
> zfeZ(o(}%&&1P5#*1vVbnssk~XhN5bNz=T)>5^+BS=V54SJ|^z)5I7%kU;>-skiq*{
> z5B^=eF<T)pK9+)bV;9UCK>t-HOi+bkR-wK1xpfXL;S<?ho1pQ5gYzxiHR~=e+XHS(
> zYe7QMZb3IjWV72H-JpD~6z(tbgwn1o$D2s!YteWNJS!i9l%iW?+34Lvr*KL(6{_X|
> zobEjAb{lD|4qsmYvGF;~r0Aunc#>=c)0W4s|D{#(q9~vaX{rGms=((Wn*~LeWqIu}
> zkGvlzwaxjL25hey2bVweu<xK*t+ at Oa_)UKTK^x4IwmKMOjm at oL`l)}_NGPy}tdb}w
> zHa>H`ji2N7m}Xsj#j7-`#=Dv}`)h&)9th^&^dR%>WH_MB8KcIXVf8p&s1xD|_k)R-
> zrk$Z0-|Gf}&4Au$KhU$k?3YR5by~D9M&-q$=ocNz4!IY&p7%OxuJf&+Ei-G(23hU;
> zHTLhMtjFR9ExVbPQVLzBFlROcIZ|#jmX6fm_hsVa3XP<aKAeAt8dqp&oBW=V^+d>Q
> zkcNnm%Ds?ggd^Rv2~9_o82cv;p6LSBD_g_s-n1uZ8#<EeLwTm~LE9J!Zdo at M&*jFU
> zoM+Z%F5)(8$8y`Wz~%Pd;Nlx at aH{<lk}}CcRMRXZMD&%Uhz3Ze$jpg#uec1IlFMPW
> MDQ4iZEk#_;cNAJoqyPW_
>
> diff --git a/plugins/kimchi/ui/pages/help/dita-help.xsl b/plugins/kimchi/ui/pages/help/dita-help.xsl
> index 8583a4e..45f0a3b 100644
> --- a/plugins/kimchi/ui/pages/help/dita-help.xsl
> +++ b/plugins/kimchi/ui/pages/help/dita-help.xsl
> @@ -9,7 +9,7 @@
> <head>
> <title><xsl:value-of select="/cshelp/title" /></title>
> <meta charset="UTF-8" />
> - <link rel="shortcut icon" href="../../images/logo.ico" />
> + <link rel="shortcut icon" href="images/logo.ico" />
> <link rel="stylesheet" type="text/css" href="../kimchi.css" />
> </head>
> <body>
> diff --git a/src/wok/config.py.in b/src/wok/config.py.in
> index 5ffa936..bebe12b 100644
> --- a/src/wok/config.py.in
> +++ b/src/wok/config.py.in
> @@ -142,6 +142,14 @@ class WokConfig(dict):
> '/wok-ui.html': {
> 'tools.wokauth.on': True
> },
> + '/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
> + },
> }
>
> def __init__(self):
More information about the Kimchi-devel
mailing list