[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