[CMF-checkins] CVS: CMF/CMFCore/tests/base - dummy.py:1.1.2.8

Chris Withers chrisw@nipltd.com
Fri, 15 Feb 2002 13:49:03 -0500


Update of /cvs-repository/CMF/CMFCore/tests/base
In directory cvs.zope.org:/tmp/cvs-serv29354/CMFCore/tests/base

Modified Files:
      Tag: ChrisW-refactor_tests-branch
	dummy.py 
Log Message:
Done Favorite

=== CMF/CMFCore/tests/base/dummy.py 1.1.2.7 => 1.1.2.8 ===
+from Acquisition import Implicit, aq_inner, aq_parent
 from OFS.SimpleItem import Item
 from Products.CMFCore.PortalContent import PortalContent
 from Products.CMFCore.TypesTool import TypeInformation
 from Products.CMFCore.TypesTool import FactoryTypeInformation
 from Products.CMFCore.ActionProviderBase import ActionProviderBase
 
-class DummyObject:
+class DummyObject(Implicit):
     """
-    A dummy callable object
+    A dummy callable object.
+    Comes with getIcon and restrictedTraverse
+    methods.
     """
     def __init__(self, name='dummy',**kw):
         self.name = name
@@ -19,6 +21,12 @@
     def __call__(self):
         return self.name
 
+    def restrictedTraverse( self, path ):
+        return path and getattr( self, path ) or self
+
+    def getIcon( self, relative=0 ):
+        return 'Site: %s' % relative
+
 class DummyContent( PortalContent, Item ):
     """
     A Dummy piece of PortalContent
@@ -151,10 +159,11 @@
     def _setObject(self,id,object):
         setattr(self,id,object)
 
-class DummyTool(ActionProviderBase):
+class DummyTool(Implicit,ActionProviderBase):
     """
-    This is a Dummy Tool that behaves as both
-    a MemberShipTool and an Action Provider
+    This is a Dummy Tool that behaves as a
+    a MemberShipTool, a URLTool and an
+    Action Provider
     """
 
     _actions = [
@@ -162,6 +171,8 @@
         DummyObject()
         ]
 
+    root = 'DummyTool'
+    
     def __init__(self, anon=1):
         self.anon = anon 
 
@@ -171,3 +182,13 @@
     def getAuthenticatedMember(self):
         return "member"
   
+    def __call__( self ):
+        return self.root
+
+    getPortalPath = __call__
+
+    def getPortalObject( self ):
+        return aq_parent( aq_inner( self ) )
+
+    def getIcon( self, relative=0 ):
+        return 'Tool: %s' % relative