[Kimchi-devel] [PATCH] [Wok 2/2] Do not use proxy when running tests

Lucio Correia luciojhc at linux.vnet.ibm.com
Thu Feb 9 17:08:11 UTC 2017


Currently administration permissions are required to
run tests in order to change nginx configuration.

With this patch, tests requests are handled directly by
cherrypy, without being proxied by nginx. This allows
tests to be run without administration permissions.

Signed-off-by: Lucio Correia <luciojhc at linux.vnet.ibm.com>
---
 src/wok/server.py |  5 +++--
 tests/utils.py    | 14 +++-----------
 2 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/src/wok/server.py b/src/wok/server.py
index d99b91f..901940c 100644
--- a/src/wok/server.py
+++ b/src/wok/server.py
@@ -68,8 +68,9 @@ class Server(object):
                 if hasattr(options, item):
                     config.config.set(sec, item, str(getattr(options, item)))
 
-        # Check proxy configuration
-        check_proxy_config()
+        # Check proxy configuration when not in test mode
+        if not hasattr(options, 'test') or not options.test:
+            check_proxy_config()
 
         make_dirs = [
             os.path.abspath(config.get_log_download_path()),
diff --git a/tests/utils.py b/tests/utils.py
index 9c18637..ef8ae21 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -24,9 +24,7 @@ import base64
 import cherrypy
 import grp
 import httplib
-import inspect
 import os
-import ssl
 import sys
 import threading
 import time
@@ -40,7 +38,7 @@ from wok.exception import NotFoundError, OperationFailed
 from wok.utils import wok_log
 
 HOST = '0.0.0.0'
-PROXY_PORT = 8001
+PORT = 8010
 
 fake_user = {'root': 'letmein!'}
 
@@ -91,7 +89,7 @@ if sys.version_info[:2] == (2, 6):
 def run_server(test_mode, environment='dev', server_root=''):
 
     args = type('_', (object,),
-                {'cherrypy_port': 8010, 'max_body_size': '4*1024',
+                {'cherrypy_port': PORT, 'max_body_size': '4*1024',
                  'test': test_mode, 'access_log': '/dev/null',
                  'error_log': '/dev/null', 'environment': environment,
                  'log_level': 'debug', 'session_timeout': 10,
@@ -122,13 +120,7 @@ def _request(conn, path, data, method, headers):
 
 
 def request(path, data=None, method='GET', headers=None):
-    # verify if HTTPSConnection has context parameter
-    if "context" in inspect.getargspec(httplib.HTTPSConnection.__init__).args:
-        context = ssl._create_unverified_context()
-        conn = httplib.HTTPSConnection(HOST, PROXY_PORT, context=context)
-    else:
-        conn = httplib.HTTPSConnection(HOST, PROXY_PORT)
-
+    conn = httplib.HTTPConnection(HOST, PORT)
     return _request(conn, path, data, method, headers)
 
 
-- 
2.7.4



More information about the Kimchi-devel mailing list