Skip to content

Commit

Permalink
Move ZServer related testing support into ZServer.Testing.
Browse files Browse the repository at this point in the history
  • Loading branch information
hannosch committed Aug 13, 2016
1 parent a496dc5 commit 5a54bdf
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 385 deletions.
2 changes: 2 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ Features Added
Restructuring
+++++++++++++

- Move ZServer related testing support into ZServer.Testing.

- Split out Lifetime, webdav and ZServer packages into a ZServer project.

- Move webdav's EtagSupport, Lockable and LockItem into OFS.
Expand Down
4 changes: 2 additions & 2 deletions src/OFS/tests/testFileAndImage.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,11 +343,11 @@ def testUpdateData(self):
def testStr(self):
self.assertEqual(
str(self.file),
('<img src="http://foo/file" '
('<img src="http://nohost/file" '
'alt="" title="" height="16" width="16" />'))

def testTag(self):
tag_fmt = ('<img src="http://foo/file" '
tag_fmt = ('<img src="http://nohost/file" '
'alt="%s" title="%s" height="16" width="16" />')
self.assertEqual(self.file.tag(), (tag_fmt % ('', '')))
self.file.manage_changeProperties(title='foo')
Expand Down
4 changes: 2 additions & 2 deletions src/Products/SiteAccess/tests/testVirtualHostMonster.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def tearDown(self):

def testAbsoluteUrl(self):
m = self.app.folder.doc.absolute_url
self.assertEqual(m(), 'http://foo/folder/doc')
self.assertEqual(m(), 'http://nohost/folder/doc')

def testAbsoluteUrlPath(self):
m = self.app.folder.doc.absolute_url_path
Expand Down Expand Up @@ -101,7 +101,7 @@ def test_actual_url_w_VHR_no_doc_no_trailing_slash(self):

def gen_cases():
for vbase, ubase in (
('', 'http://foo'),
('', 'http://nohost'),
('/VirtualHostBase/http/example.com:80', 'http://example.com')):
yield vbase, '', '', 'folder/doc', ubase

Expand Down
13 changes: 7 additions & 6 deletions src/Testing/ZopeTestCase/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,23 @@
"""TestCase for Zope testing
"""

import ZopeLite as Zope2
import unittest
import transaction
import utils
import interfaces
import connections
import layer

from zope.interface import implements
from AccessControl.SecurityManagement import noSecurityManager

from Testing.makerequest import makerequest
from Testing.ZopeTestCase import connections
from Testing.ZopeTestCase import interfaces
from Testing.ZopeTestCase import layer
from Testing.ZopeTestCase import ZopeLite as Zope2


def app():
'''Opens a ZODB connection and returns the app object.'''
app = Zope2.app()
app = utils.makerequest(app)
app = makerequest(app)
connections.register(app)
return app

Expand Down
5 changes: 3 additions & 2 deletions src/Testing/ZopeTestCase/layer.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
"""ZopeLite layer
"""

from Testing.ZopeTestCase import utils

_deferred_setup = []


Expand Down Expand Up @@ -71,9 +73,8 @@ def appcalled_func(*args, **kw):
return func(*args, **kw)
if kw.get('app') is not None:
return func(*args, **kw)

def caller(*args, **kw):
import utils
utils.appcall(func, *args, **kw)
_deferred_setup.append((caller, args, kw))
return appcalled_func

10 changes: 5 additions & 5 deletions src/Testing/ZopeTestCase/sandbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
"""Support for ZODB sandboxes in ZTC
"""

import ZopeLite as Zope2
import transaction
import base
import utils
import connections

from Testing.makerequest import makerequest
from Testing.ZopeTestCase import connections
from Testing.ZopeTestCase import ZopeLite as Zope2


class Sandboxed:
Expand All @@ -32,7 +32,7 @@ def _app(self):
'''Returns the app object for a test.'''
app = Zope2.app(Zope2.sandbox().open())
AppZapper().set(app)
app = utils.makerequest(app)
app = makerequest(app)
connections.register(app)
return app

Expand Down
192 changes: 0 additions & 192 deletions src/Testing/ZopeTestCase/testWebserver.py

This file was deleted.

63 changes: 11 additions & 52 deletions src/Testing/ZopeTestCase/threadutils.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,56 +10,15 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Parts of ZServer support are in this module so they can
be imported more selectively.
"""

from threading import Thread
from StringIO import StringIO

dummyLOG = StringIO()


def setNumberOfThreads(number_of_threads):
'''Sets number of ZServer threads.'''
try:
from ZServer.Zope2.Startup.config import setNumberOfThreads
setNumberOfThreads(number_of_threads)
except ImportError:
pass


def zserverRunner(host, port, log=None):
'''Runs an HTTP ZServer on host:port.'''
from ZServer import logger, asyncore
from ZServer import zhttp_server, zhttp_handler
if log is None: log = dummyLOG
lg = logger.file_logger(log)
hs = zhttp_server(ip=host, port=port, resolver=None, logger_object=lg)
zh = zhttp_handler(module='Zope2', uri_base='')
hs.install_handler(zh)
asyncore.loop()


class QuietThread(Thread):
'''This thread eats all exceptions'''
def __init__(self, target=None, args=(), kwargs={}):
Thread.__init__(self, target=target, args=args, kwargs=kwargs)
self.__old_bootstrap = Thread._Thread__bootstrap
def __bootstrap(self):
try: self.__old_bootstrap(self)
except: pass
_Thread__bootstrap = __bootstrap


def QuietPublisher(self, accept):
'''This server eats all exceptions'''
try: self.__old_init__(accept)
except: pass


from ZServer.PubCore.ZServerPublisher import ZServerPublisher
if not hasattr(ZServerPublisher, '__old_init__'):
ZServerPublisher.__old_init__ = ZServerPublisher.__init__
ZServerPublisher.__init__ = QuietPublisher

from zope.deferredimport import deprecated

# BBB Zope 5.0
deprecated(
'Please import from ZServer.Testing.threadutils.',
dummyLOG='ZServer.Testing.threadutils:dummyLOG',
setNumberOfThreads='ZServer.Testing.threadutils:setNumberOfThreads',
zserverRunner='ZServer.Testing.threadutils:zserverRunner',
QuietThread='ZServer.Testing.threadutils:QuietThread',
QuietPublisher='ZServer.Testing.threadutils:QuietPublisher',
)
Loading

0 comments on commit 5a54bdf

Please sign in to comment.