[KSS-checkins] r41688 - in kukit/kss.core/trunk/kss/core: . tests
nouri at codespeak.net
nouri at codespeak.net
Fri Mar 30 14:08:09 CEST 2007
Author: nouri
Date: Fri Mar 30 14:08:07 2007
New Revision: 41688
Modified:
kukit/kss.core/trunk/kss/core/tests/base.py
kukit/kss.core/trunk/kss/core/tests/test_siteview.py
kukit/kss.core/trunk/kss/core/tests/test_ttwapi.py
kukit/kss.core/trunk/kss/core/ttwapi.py
Log:
Change KSS tests to use layers.
Modified: kukit/kss.core/trunk/kss/core/tests/base.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/tests/base.py (original)
+++ kukit/kss.core/trunk/kss/core/tests/base.py Fri Mar 30 14:08:07 2007
@@ -21,6 +21,7 @@
#
from textwrap import dedent
+import warnings
from Testing.ZopeTestCase import ZopeTestCase, FunctionalTestCase
from OFS.SimpleItem import SimpleItem
@@ -32,29 +33,9 @@
import kss.core
from kss.core import KSSView
-
-# Test view
-class TestView(KSSView):
- def testMethod(self):
- 'Yes.'
-
-# Debug request
-# This has a modified render.
-
-class IDebugRequest(IBrowserRequest):
- 'The debug request'
-
-class KssViewTestCase(ZopeTestCase):
-
- def afterSetUp(self):
- placelesssetup.setUp()
- self.loadCoreConfig()
-
- def beforeTearDown(self):
- placelesssetup.tearDown()
-
- def loadCoreConfig(self, kss_core=True):
- # Allow traversing
+class KSSCoreLayer:
+ @classmethod
+ def setUp(cls):
try:
import Products.Five
except ImportError:
@@ -93,10 +74,37 @@
except IOError:
# Zope 2.10 / Five 1.3.6 does not have it
pass
- if kss_core:
- load_config('meta.zcml', package=kss.core)
- load_config('configure.zcml', package=kss.core)
load_config('configure-unittest.zcml', package=kss.core.tests)
+
+class KSSLayer(KSSCoreLayer):
+ @classmethod
+ def setUp(cls):
+ try:
+ from Products.Five.zcml import load_string, load_config
+ except ImportError:
+ raise ImportError("KSSLayer requires Five to be installed.")
+ load_config('meta.zcml', package=kss.core)
+ load_config('configure.zcml', package=kss.core)
+
+# Test view
+class TestView(KSSView):
+ def testMethod(self):
+ 'Yes.'
+
+# Debug request
+# This has a modified render.
+
+class IDebugRequest(IBrowserRequest):
+ 'The debug request'
+
+class KssViewTestCase(ZopeTestCase):
+ layer = KSSLayer
+
+ def loadCoreConfig(self, kss_core=True):
+ warnings.warn(
+ "KSS tests are now using layers. Please do not use "
+ "loadCoreConfig anymore.",
+ DeprecationWarning)
def createView(self):
"Set up a fake view (with no content)"
@@ -106,18 +114,9 @@
def setDebugRequest(self):
'commands will be rendered as test friendly data structures'
request = self.folder.REQUEST
- interface.directlyProvides(request, interface.directlyProvidedBy(request) + IDebugRequest)
-
- def beforeTearDown(self):
- placelesssetup.tearDown()
- try:
- import Products.Five
- except ImportError:
- # probably zope 3
- pass
- else:
- import Products.Five.zcml
- Products.Five.zcml._context = None
+ interface.directlyProvides(
+ request,
+ interface.directlyProvidedBy(request) + IDebugRequest)
class KssViewFunctionalTestCase(FunctionalTestCase, KssViewTestCase):
'Functional test base'
Modified: kukit/kss.core/trunk/kss/core/tests/test_siteview.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/tests/test_siteview.py (original)
+++ kukit/kss.core/trunk/kss/core/tests/test_siteview.py Fri Mar 30 14:08:07 2007
@@ -2,7 +2,7 @@
import zope.component.event # import does the trick
from zope.testing import doctest
from zope.testing.cleanup import cleanUp
-from zope.app.component.hooks import setSite, setHooks
+from zope.app.component.hooks import setHooks
def setUp(test=None):
setHooks()
Modified: kukit/kss.core/trunk/kss/core/tests/test_ttwapi.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/tests/test_ttwapi.py (original)
+++ kukit/kss.core/trunk/kss/core/tests/test_ttwapi.py Fri Mar 30 14:08:07 2007
@@ -9,7 +9,7 @@
import Products.Five.component
from Products.Five import zcml
-from zope import event, component
+from zope import component
from zope.lifecycleevent import ObjectModifiedEvent
from zope.app.component.hooks import setHooks
@@ -18,9 +18,20 @@
class TTWTestCase(KssViewTestCase):
+ class layer(KssViewTestCase.layer):
+ @classmethod
+ def setUp(cls):
+ configure_zcml = '''\
+ <configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ package="kss.core.tests.test_ttwapi">
+ <subscriber handler=".objectModifiedThruKSSView" />
+ </configure>'''
+ zcml.load_string(configure_zcml)
+
def afterSetUp(self):
KssViewTestCase.afterSetUp(self)
- zcml.load_config('configure.zcml', package=Products.Five.component)
setHooks()
self.app.manage_addProduct['PythonScripts'].manage_addPythonScript(
'kss_test')
@@ -62,14 +73,6 @@
self.assertEquals(command['params']['type'], 'fade')
def test_scriptWithEvents(self):
- configure_zcml = '''\
- <configure
- xmlns="http://namespaces.zope.org/zope"
- xmlns:browser="http://namespaces.zope.org/browser"
- package="kss.core.tests.test_ttwapi">
- <subscriber handler=".objectModifiedThruKSSView" />
- </configure>'''
- zcml.load_string(configure_zcml)
pythonScriptCode = '''
from kss.core.ttwapi import startKSSCommands
from kss.core.ttwapi import getKSSCommandSet
Modified: kukit/kss.core/trunk/kss/core/ttwapi.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/ttwapi.py (original)
+++ kukit/kss.core/trunk/kss/core/ttwapi.py Fri Mar 30 14:08:07 2007
@@ -1,10 +1,17 @@
from kss.core import KSSView
from kss.core.interfaces import IKSSView
-from zope.app.component.hooks import getSite
+from zope.app.component.hooks import getSite, setSite
from kss.core.unicode_quirks import force_unicode
def startKSSCommands(context, request):
view = KSSView(context, request)
+ # XXX Setting the site at this point might be wrong thing to do.
+ # I discovered that while running test_ttwapi.py, the site would
+ # not be set by calling ``__before_publishing_traverse__``, which
+ # I think is the idea here. OTOH, it seems a bit off that we're
+ # calling ``__before_publishing_traverse__`` outside of the
+ # publisher at all. ~nouri
+ setSite(view)
view.__before_publishing_traverse__(context, request)
return view
More information about the Kukit-checkins
mailing list