[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/OFS/Services/RoleService/tests - testRoleService.py:1.5

Jim Fulton jim@zope.com
Thu, 11 Jul 2002 14:22:03 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/App/OFS/Services/RoleService/tests
In directory cvs.zope.org:/tmp/cvs-serv7355/lib/python/Zope/App/OFS/Services/RoleService/tests

Modified Files:
	testRoleService.py 
Log Message:

Reimplemented service managers to be package based. Service managers
are no longer containers. They have a packages subobject (not a
packages service) that contains packages. TTW components are created
in packages. To register a component, create the appropriate component
directive objects (these should be called configuration objects).

This should be viewed as a prototype to illustrate the idea of
packages. Lots of things can change (especially UI) and many things
aren't done (e.g. visiting created directives).

In the course of this, I fixed a bunch of bugs and problems in
traversal machinery. 

I also renamed Zope.ComponentArchitecture.IServiceManager back to
IServiceService, since this interface doesn't actually specify any
management.  



=== Zope3/lib/python/Zope/App/OFS/Services/RoleService/tests/testRoleService.py 1.4 => 1.5 ===
 from Zope.App.OFS.Services.ServiceManager.tests.PlacefulSetup \
     import PlacefulSetup
 from Zope.ComponentArchitecture import getServiceManager, getService
+from Zope.App.OFS.Services.ServiceManager.ServiceDirective \
+     import ServiceDirective
+from Zope.App.Traversing import getPhysicalPathString
+
+from Zope.App.Traversing.Traverser import Traverser
+from Zope.App.Traversing.ITraverser import ITraverser
+from Zope.App.Traversing.DefaultTraversable import DefaultTraversable
+from Zope.App.Traversing.ITraversable import ITraversable
+
+
+from Zope.App.Traversing.IPhysicallyLocatable import IPhysicallyLocatable
+from Zope.App.Traversing.IContainmentRoot import IContainmentRoot
+from Zope.App.Traversing.PhysicalLocationAdapters \
+     import WrapperPhysicallyLocatable, RootPhysicallyLocatable
+
+
+from Zope.App.OFS.Container.ContainerTraversable import ContainerTraversable
+from Zope.App.OFS.Container.IContainer import ISimpleReadContainer
+
+
 
 class RoleServiceTests(PlacefulSetup, TestCase):
 
@@ -29,6 +49,24 @@
     def setUp(self):
         PlacefulSetup.setUp(self)
         self.buildFolders()
+
+        # set up traversal services
+        adapterService=getService(None, "Adapters")
+        adapterService.provideAdapter(
+            None, ITraverser, Traverser)
+        adapterService.provideAdapter(
+            None, ITraversable, DefaultTraversable)
+        adapterService.provideAdapter(
+            ISimpleReadContainer, ITraversable, ContainerTraversable)
+
+
+        adapterService.provideAdapter(
+              None, IPhysicallyLocatable, WrapperPhysicallyLocatable)
+        adapterService.provideAdapter(
+              IContainmentRoot, IPhysicallyLocatable, RootPhysicallyLocatable)
+
+
+
         from Zope.App.Security.IRoleService import IRoleService
         from Zope.App.Security.Registries.RoleRegistry import roleRegistry
         sm=getServiceManager(None)
@@ -38,11 +76,18 @@
         self.roleRegistry=roleRegistry
         provideService("RoleService", self.roleRegistry)
         self.createServiceManager()
+        
         self.sm=getServiceManager(self.rootFolder)
         from Zope.App.OFS.Services.RoleService.RoleService import RoleService
         self.rs = RoleService()
-        self.sm.setObject("myRoleService", self.rs)
-        self.sm.bindService("RoleService","myRoleService")
+        self.sm.Packages['default'].setObject("myRoleService", self.rs)
+
+        path = "%s/Packages/default/myRoleService" % getPhysicalPathString(
+            self.sm)
+        directive = ServiceDirective("RoleService", path)
+        self.sm.Packages['default'].setObject("myRoleServiceDir", directive)
+        self.sm.bindService(directive)
+
         self.rs=getService(self.rootFolder,"RoleService")
 
     def testGetRole(self):
@@ -69,8 +114,15 @@
         self.sm1=getServiceManager(self.folder1)
         from Zope.App.OFS.Services.RoleService.RoleService import RoleService
         self.rs1 = RoleService()
-        self.sm1.setObject("myRoleService", self.rs1)
-        self.sm1.bindService("RoleService","myRoleService")
+
+        self.sm1.Packages['default'].setObject("myRoleService", self.rs1)
+
+        path = "%s/Packages/default/myRoleService" % getPhysicalPathString(
+            self.sm1)
+        directive = ServiceDirective("RoleService", path)
+        self.sm1.Packages['default'].setObject("myRoleServiceDir", directive)
+        self.sm1.bindService(directive)
+
         self.rs1=self.sm1.getService("RoleService")
         r1=Role("Reviewer",'','')
         self.rs1.setObject("Reviewer", r1)