[prev in list] [next in list] [prev in thread] [next in thread] 

List:       zope-cvs
Subject:    [Zope-Checkins] CVS: Zope3/lib/python/Zope/App/ZMI/tests - testProvideClass.py:1.1.2.8 testServicePr
From:       Gary Poster <garyposter () earthlink ! net>
Date:       2002-04-29 23:20:40
[Download RAW message or body]

Update of /cvs-repository/Zope3/lib/python/Zope/App/ZMI/tests
In directory cvs.zope.org:/tmp/cvs-serv1556/App/ZMI/tests

Modified Files:
      Tag: Zope-3x-branch
	testProvideClass.py testServiceProvideClass.py 
	testTabsDirective.py testZMIViewService.py 
	testZMIViewUtility.py 
Log Message:
ComponentArchitecture reorganization; addition of for_container; addition of \
IWriteContainer.isAddable.

good news: all tests pass; bad news: after the new security system, my changes have \
some problems.  I had to punt on the default contents view of all folders for \
instance--hasServiceManager is causing a problem for some reason I couldn't divine, \
even with Shane's Checker tool.  I commented out the offending code on the \
contents.pt just to keep things up.

I tagged before committing: gary_CA-reorganization

changes more in depth (as I understand it, all or most approved :-) ):

(in ComponentArchitecture:)
 * changing implementation names to Global* (i.e., AdapterService becomes 
GlobalAdapterService) and giving each its own file (many are clumped together 
in hooks.py)
 * removing hooks.py in ComponentArchitecture, putting all functions in appropriate \
                module above (i.e. getAdapter will be in the adapter module)
 * largely removing indirection (_hook) except for getService and 
getNextService
 * changing IServiceService.py to IServiceManager
 * changing Service.py to GlobalServiceManager.py (and class name too)
 * removing "provide*" functions (i.e., provideAdapter, provideUtility, etc.) 
and "defineService" from the __init__.py imports
 * change all global services to classes with appropriate methods as per 
interfaces
 * update all tests 
 * remove all of the "provide*" functions from the interfaces
 * renamed IComponentArchitecture to IPlacefulComponentArchitecture (hereafter IPCA), \
                after long discussion with SteveA 
 * list Resources as one of core CA services in IPlacefulComponentArchitecture
 * build actual IPCA interface, not just import of service interfaces (because we \
                want IPCA to be placeful, but the service interfaces do not need to \
                be)
 * place functions implementing ICA actually in __init__
 * explicitly setting up services in zcml
 * created Global service interfaces, and placed the "provides" and "set" and \
"define" functions there: however, to keep the main interfaces clean and clear, I \
placed these global interfaces in the same file as the global implementations, hoping \
to clarify that these are not reusable interfaces but descriptive, one-time \
                interfaces
 * built PlacefulSetup in Zope.ComponentArchitecture.tests for more specific CleanUp \
(a subclass).  PlacefulSetup is in the tests folder of the local ServiceManager.  \
AddableSetup also is available, in the AddableService tests.

(elsewhere in Zope3)
 * built for_container in addables
 * built isAddable for containers (after discussion with Jim, we decided an addable \
"contains" attribute in the zcml might not be the way to go.  I chose the isAddable \
                approach for a number of reasons)
 * addableservice does some more checks in getting the addable list, pertinent to the \
                above and to whether it can find the appropriate factories
 * a few more tests: a start of one in the local event service, and some more here \
and there

I'm sorry to add to the confusion of the big security changes, but I needed to either \
trash these changes or commit them: I'm a bit out of time for the moment.  If all \
else fails, again, I did tag the previous version.



=== Zope3/lib/python/Zope/App/ZMI/tests/testProvideClass.py 1.1.2.7 => 1.1.2.8 ===
 
 import unittest, sys, Interface
-from Zope.Testing.CleanUp import CleanUp # Base class w registry cleanup
+from Zope.App.OFS.Services.AddableService.tests.AddableSetup import AddableSetup
 import Zope.Configuration.name
 
 class MyAddableObject:
     pass
 
-class ProvideClassTest(CleanUp, unittest.TestCase):
-
-    def getService_hook(self, context, name):
-        if name != "AddableContent" or context is not None: raise NotFoundError
-        return self.addableService
-    
-    def provideFactory_hook(self, qname, factory):
-        self._factories[qname] = factory
-    
-    def createObject_hook(self, place, name, args=[], kwargs={}):
-        return self._factories[name](*args, **kwargs)
-    
-    def setUp(self):
-        from Zope.ComponentArchitecture import hooks
-        self.__old_getService_hook=hooks.getService_hook
-        self.__old_provideFactory_hook=hooks.provideFactory_hook
-        self.__old_createObject_hook=hooks.createObject_hook
-        self._factories={}
-        hooks.getService_hook=self.getService_hook
-        hooks.provideFactory_hook=self.provideFactory_hook
-        hooks.createObject_hook=self.createObject_hook
-        from Zope.App.OFS.Services.AddableService.GlobalAddableService \
-             import GlobalAddableService
-        self.addableService=GlobalAddableService()
-    
-    def tearDown(self):
-        from Zope.ComponentArchitecture import hooks
-        hooks.getService_hook=self.__old_getService_hook
-        hooks.provideFactory_hook=self.__old_provideFactory_hook
-        hooks.createObject_hook=self.__old_createObject_hook
+class ProvideClassTest(AddableSetup, unittest.TestCase):
 
     def testProvideClass(self):
-        from Zope.ComponentArchitecture import createObject, getService
+        from Zope.ComponentArchitecture import getService
         from Zope.App.ZMI import provideClass
 
         provideClass("AddableContent", 'My.Test.Addable', MyAddableObject,
                      None, 'Testing')
 
-        object = createObject(None,'My.Test.Addable')
+        object = getService(None, "Factories").createObject('My.Test.Addable')
         self.assert_(isinstance(object, MyAddableObject))
 
 


=== Zope3/lib/python/Zope/App/ZMI/tests/testServiceProvideClass.py 1.1.2.8 => 1.1.2.9 \
===  from StringIO import StringIO
 from Zope.Configuration.xmlconfig import xmlconfig
-from Zope.Testing.CleanUp import CleanUp # Base class w registry cleanup
+from Zope.App.OFS.Services.AddableService.tests.AddableSetup import AddableSetup
 from Zope.Configuration.xmlconfig import ZopeXMLConfigurationError
 from Zope.ComponentArchitecture import getService
 
@@ -32,36 +32,7 @@
 class MyAddableService:
     pass
 
-class ServiceProvideClassTest(CleanUp, unittest.TestCase):
-
-    def getService_hook(self, context, name):
-        if name != "AddableServices" or context is not None: raise NotFoundError
-        return self.addableService
-    
-    def provideFactory_hook(self, qname, factory):
-        self._factories[qname] = factory
-    
-    def createObject_hook(self, place, name, args=[], kwargs={}):
-        return self._factories[name](*args, **kwargs)
-    
-    def setUp(self):
-        from Zope.ComponentArchitecture import hooks
-        self.__old_getService_hook=hooks.getService_hook
-        self.__old_provideFactory_hook=hooks.provideFactory_hook
-        self.__old_createObject_hook=hooks.createObject_hook
-        self._factories={}
-        hooks.getService_hook=self.getService_hook
-        hooks.provideFactory_hook=self.provideFactory_hook
-        hooks.createObject_hook=self.createObject_hook
-        from Zope.App.OFS.Services.AddableService.GlobalAddableService \
-             import GlobalAddableService
-        self.addableService=GlobalAddableService()
-    
-    def tearDown(self):
-        from Zope.ComponentArchitecture import hooks
-        hooks.getService_hook=self.__old_getService_hook
-        hooks.provideFactory_hook=self.__old_provideFactory_hook
-        hooks.createObject_hook=self.__old_createObject_hook
+class ServiceProvideClassTest(AddableSetup, unittest.TestCase):
 
     def testServiceProvideClassDirective(self):
         serviceName = (


=== Zope3/lib/python/Zope/App/ZMI/tests/testTabsDirective.py 1.1.2.6 => 1.1.2.7 ===
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
-# 
+#
 ##############################################################################
 """
 
@@ -22,17 +22,18 @@
 from StringIO import StringIO
 
 from Zope.App.ZMI.ZMIViewService import ZMIViews
-from Zope.Testing.CleanUp import CleanUp # Base class w registry cleanup
-from Zope.ComponentArchitecture import provideAdapter
 from Zope.Configuration.xmlconfig import xmlconfig
 from Zope.Configuration.xmlconfig import ZopeXMLConfigurationError
 
 from Interface import Interface
 
 from Zope.App.ZMI.tests.sampleInterfaces import *
+from Zope.App.OFS.ServiceManager.tests.PlacefulSetup\
+           import PlacefulSetup
+from Zope.ComponentArchitecture import getService
 
+class Test(PlacefulSetup, unittest.TestCase):
 
-class Test(CleanUp, unittest.TestCase):
     #XXX we should have a test for multiple inheritance interface
     # hierarchies.
 
@@ -58,7 +59,8 @@
       </zopeConfigure>        
         """))
 
-        provideAdapter(I1, ITraverser, FakeTraverser)
+        getService(None,"Adapters").provideAdapter(I1, ITraverser,
+ FakeTraverser)
         
         self.assertEqual(list(ZMIViews.getViews(O2())),
                          [
@@ -94,7 +96,8 @@
       </zopeConfigure>        
         """))
 
-        provideAdapter(I1, ITraverser, FakeTraverser)
+        getService(None,"Adapters").provideAdapter(I1, ITraverser,
+ FakeTraverser)
 
         self.assertEqual(list(ZMIViews.getViews(O2())),
                          [


=== Zope3/lib/python/Zope/App/ZMI/tests/testZMIViewService.py 1.1.2.5 => 1.1.2.6 ===
 from Interface import Interface
 
-from Zope.Testing.CleanUp import CleanUp # Base class w registry cleanup
-from Zope.ComponentArchitecture import provideAdapter
+from Zope.ComponentArchitecture import getService
 from Zope.App.ZMI.ZMIViewService import ZMIViewService
 from Zope.App.ZMI.tests.sampleInterfaces import *
+from Zope.App.OFS.ServiceManager.tests.PlacefulSetup\
+           import PlacefulSetup
 
 
 
-class Test(CleanUp, unittest.TestCase):
+class Test(PlacefulSetup, unittest.TestCase):
     #XXX we should have a test for multiple inheritance interface
     # hierarchies.
-    
+
     def testAddView(self):
 
-        provideAdapter(I1, ITraverser, FakeTraverser)
-        provideAdapter(I2, ITraverser, FakeTraverser)
-        
+        getService(None,"Adapters").provideAdapter(I1, ITraverser,
+ FakeTraverser)
+        getService(None,"Adapters").provideAdapter(I2, ITraverser,
+ FakeTraverser)
+
         service = ZMIViewService()
         service.registerView(I1, 'Edit', 'edit')
         service.registerView(I1, 'History', 'history')
@@ -38,7 +41,7 @@
 
         self.assertEqual(list(service.getViews(O1())),
                          [('Edit', 'edit'), ('History', 'history')])
-        
+
         self.assertEqual(list(service.getViews(O2())),
                          [
                           ('Update', 'update_magic'),
@@ -50,9 +53,11 @@
 
     def testZMIFilter(self):
 
-        provideAdapter(I1, ITraverser, FakeTraverser)
-        provideAdapter(I2, ITraverser, FakeTraverser)        
-        
+        getService(None,"Adapters").provideAdapter(I1, ITraverser,
+ FakeTraverser)
+        getService(None,"Adapters").provideAdapter(I2, ITraverser,
+ FakeTraverser)
+
         service = ZMIViewService()
         service.registerView(I1, 'Edit', 'edit', 'python: 2==2')
         service.registerView(I1, 'History', 'history', 'python: 1==2')
@@ -65,8 +70,8 @@
         self.assertEqual(list(service.getViews(O2())),
                          [('Update', 'update_magic'), ('Edit', 'edit')]
                          )
-        
-        
+
+
 def test_suite():
     loader=unittest.TestLoader()
     return loader.loadTestsFromTestCase(Test)


=== Zope3/lib/python/Zope/App/ZMI/tests/testZMIViewUtility.py 1.1.2.8 => 1.1.2.9 ===
 
 from Zope.App.ZMI.IZMIViewService import IZMIViewService
-from Zope.ComponentArchitecture import getService, provideService
-from Zope.Testing.CleanUp import CleanUp # Base class w registry cleanup
-from Zope.ComponentArchitecture import defineService, provideView
+from Zope.ComponentArchitecture import getService, getServiceManager
+from Zope.App.OFS.ServiceManager.tests.PlacefulSetup\
+           import PlacefulSetup
 from Zope.App.ZMI.ZMIViewUtility import ZMIViewUtility
 from Zope.Publisher.Browser.IBrowserPublisher import IBrowserPublisher
 from Zope.App.ZopePublication.Traversers import DefaultTraverser
@@ -57,13 +57,17 @@
     __implements__ = IBrowserPublisher
 
 
-class Test(CleanUp, unittest.TestCase):
+class Test(PlacefulSetup, unittest.TestCase):
 
     def setUp(self):
+        PlacefulSetup.setUp(self)
+        defineService=getServiceManager(None).defineService
+        provideService=getServiceManager(None).provideService
         defineService('ZMIViewService', IZMIViewService)
         provideService('ZMIViewService', Service())
-        provideView(I, 'a3', IBrowserPublisher, V)
-        provideView(None, '_traverse', IBrowserPublisher, DefaultTraverser)
+        getService(None,"Views").provideView(I, 'a3', IBrowserPublisher, V)
+        getService(None, "Views").provideView(None, '_traverse',
+                            IBrowserPublisher, DefaultTraverser)
         defineChecker(C, NamesChecker(['a1', 'a2', 'a3'], CheckerPublic,
                                       abad='waaa'))
 



_______________________________________________
Zope-Checkins maillist  -  Zope-Checkins@zope.org
http://lists.zope.org/mailman/listinfo/zope-checkins


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic