[Erp5-report] r40394 jm - /erp5/trunk/products/ERP5Type/tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Nov 18 18:53:52 CET 2010


Author: jm
Date: Thu Nov 18 18:53:52 2010
New Revision: 40394

URL: http://svn.erp5.org?rev=40394&view=rev
Log:
Unit tests: start webdav server

Modified:
    erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py
    erp5/trunk/products/ERP5Type/tests/ProcessingNodeTestCase.py
    erp5/trunk/products/ERP5Type/tests/utils.py

Modified: erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py?rev=40394&r1=40393&r2=40394&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py [utf8] Thu Nov 18 18:53:52 2010
@@ -917,7 +917,7 @@ class ERP5TypeTestCase(ProcessingNodeTes
                 from Products import DeadlockDebugger
               except ImportError:
                 pass
-              self.serverhost, self.serverport = self.startZServer()
+              self.serverhost, self.serverport = self.startZServer(verbose=True)
               self._registerNode(distributing=1, processing=1)
 
             self._updateConnectionStrings()

Modified: erp5/trunk/products/ERP5Type/tests/ProcessingNodeTestCase.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/ProcessingNodeTestCase.py?rev=40394&r1=40393&r2=40394&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/ProcessingNodeTestCase.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/ProcessingNodeTestCase.py [utf8] Thu Nov 18 18:53:52 2010
@@ -85,16 +85,24 @@ class ProcessingNodeTestCase(backportUni
       pass
     Lifetime.graceful_shutdown_loop()
 
-  def startZServer(self):
+  def startZServer(self, verbose=False):
     """Start HTTP ZServer in background"""
     utils = ZopeTestCase.utils
     if utils._Z2HOST is None:
+      _print = lambda hs: verbose and ZopeTestCase._print(
+        "Running %s server at %s:%s\n" % (
+          hs.server_protocol, hs.server_name, hs.server_port))
       try:
         hs = createZServer()
       except RuntimeError, e:
         ZopeTestCase._print(str(e))
       else:
         utils._Z2HOST, utils._Z2PORT = hs.server_name, hs.server_port
+        _print(hs)
+        try:
+          _print(createZServer(zserver_type='webdav'))
+        except RuntimeError, e:
+          ZopeTestCase._print(str(e))
         t = Thread(target=Lifetime.loop)
         t.setDaemon(1)
         t.start()

Modified: erp5/trunk/products/ERP5Type/tests/utils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/utils.py?rev=40394&r1=40393&r2=40394&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/utils.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/utils.py [utf8] Thu Nov 18 18:53:52 2010
@@ -297,19 +297,25 @@ def parseListeningAddress(host_port=None
   raise RuntimeError("Can't find free port (tried ports %s)\n"
                      % ', '.join(map(str, port_list)))
 
-def createZServer(log=os.devnull):
-  from ZServer import logger, zhttp_server, zhttp_handler
-  lg = logger.file_logger(log)
-  class new_zhttp_server:
+def createZServer(log=os.devnull, zserver_type='http'):
+  import ZServer
+  if zserver_type == 'http':
+    zserver_class, zhandler_class = ZServer.zhttp_server, ZServer.zhttp_handler
+  elif zserver_type == 'webdav':
+    from ZServer.HTTPServer import zwebdav_server as zserver_class
+    from ZServer.WebDAVSrcHandler import WebDAVSrcHandler as zhandler_class
+  else:
+    raise NotImplementedError
+  lg = ZServer.logger.file_logger(log)
+  class new_zserver(zserver_class):
     # I can't use __new__ because zhttp_handler is an old-style class :(
     def __init__(self):
-      self.__class__ = zhttp_server
+      self.__class__, = self.__class__.__bases__
   for ip, port in parseListeningAddress(os.environ.get('zserver')):
-    hs = new_zhttp_server()
+    hs = new_zserver()
     try:
       hs.__init__(ip, port, resolver=None, logger_object=lg)
-      hs.install_handler(zhttp_handler(module='Zope2', uri_base=''))
-      sys.stderr.write("Running ZServer at %s:%s\n" % (ip, port))
+      hs.install_handler(zhandler_class(module='Zope2', uri_base=''))
       return hs
     except socket.error, e:
       if e[0] != errno.EADDRINUSE:




More information about the Erp5-report mailing list