[CMF-checkins] CVS: CMF/CMFCore/tests - test_ActionInformation.py:1.1.2.2 test_ActionsTool.py:1.1.2.4

Andrew Sawyers andrew@zope.com
Fri, 4 Jan 2002 12:02:37 -0500


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

Modified Files:
      Tag: andrew_ttw_actions-branch
	test_ActionInformation.py test_ActionsTool.py 
Log Message:

*more tests
*test cleanup


=== CMF/CMFCore/tests/test_ActionInformation.py 1.1.2.1 => 1.1.2.2 ===
-from Products.CMFCore.ActionsTool import *
+import Zope, OFS.SimpleItem, unittest
+from Products.CMFDefault.MembershipTool import *
+from Products.CMFCore.PortalContent import PortalContent
 from Products.CMFCore.ActionInformation import ActionInformation
-from Products.CMFCore.Expression import Expression
+from Products.CMFCore.Expression import Expression, createExprContext
+
+class DummyMembershipTool:
+    def isAnonymousUser(self):
+        return 1
+  
+class DummyContent(PortalContent, OFS.SimpleItem.Item):
+    """
+    """
+    meta_type = 'Dummy'
+    url = 'foo_url'
+
+    def __init__(self, id, url=None):
+       self.url = url
+
+    def absolute_url(self):
+       return self.url
 
 class ActionInformationTests(unittest.TestCase):
     
+    def setUp( self ):
+        get_transaction().begin()
+        self.connection = Zope.DB.open()
+        root = self.root = self.connection.root()[ 'Application' ]
+        root._setObject('portal', DummyContent('portal', 'url_portal'))
+        portal = self.portal = self.root.portal
+        portal.portal_membership = DummyMembershipTool()
+        self.folder = DummyContent('foo', 'url_foo')
+        self.object = DummyContent('bar', 'url_bar')
+
     def test_basic_construction(self):
         ai = ActionInformation(id='view'
                               )
@@ -13,6 +40,8 @@
         self.assertEqual(ai.Description(), '')
         self.assertEqual(ai.getCondition(), '')
         self.assertEqual(ai.getActionExpression(), '')
+        self.assertEqual(ai.getVisibility(), 1)
+        self.assertEqual(ai.getCategory(), 'object')
         self.assertEqual(ai.getPermissions(), ())
 
     def test_construction_with_Expressions(self):
@@ -21,13 +50,36 @@
                              , action=Expression(
              text='view')
                              , condition=Expression(
-             text='member'))
+             text='member')
+                             , category='global'
+                             , visible=0)
         self.assertEqual(ai.getId(), 'view')
         self.assertEqual(ai.Title(), 'View')
         self.assertEqual(ai.Description(), '')
         self.assertEqual(ai.getCondition(), 'member')
         self.assertEqual(ai.getActionExpression(), 'view')
+        self.assertEqual(ai.getVisibility(), 0)
+        self.assertEqual(ai.getCategory(), 'global')
         self.assertEqual(ai.getPermissions(), ())
+    
+    def test_Condition(self):
+        portal = self.portal 
+        folder = self.folder
+        object = self.object 
+        ai = ActionInformation(id='view'
+                             , title='View'
+                             , action=Expression(
+             text='view')
+                             , condition=Expression(
+             text='member')
+                             , category='global'
+                             , visible=1)
+        ec = createExprContext(folder, portal, object)
+        self.failIf(ai.testCondition(ec))
+        
+    def tearDown( self ):
+        get_transaction().abort()
+        self.connection.close()
         
 
 def test_suite():


=== CMF/CMFCore/tests/test_ActionsTool.py 1.1.2.3 => 1.1.2.4 ===
-import unittest
-import OFS.Folder, OFS.SimpleItem
-import Acquisition
-from AccessControl.SecurityManagement import newSecurityManager
-from AccessControl.SecurityManagement import noSecurityManager
-from AccessControl import SecurityManager
+import Zope, unittest
 from Products.CMFCore.ActionsTool import *
 from Products.CMFDefault.URLTool import *
-from Products.CMFCore.CMFCorePermissions import AddPortalContent
-from Products.CMFCore.CMFCorePermissions import ModifyPortalContent
-from Products.CMFCore import utils
 import ZPublisher.HTTPRequest
 
-class PermissiveSecurityPolicy:
-    """
-        Stub out the existing security policy for unit testing purposes.
-    """
-    #
-    #   Standard SecurityPolicy interface
-    #
-    def validate( self
-                , accessed=None
-                , container=None
-                , name=None
-                , value=None
-                , context=None
-                , roles=None
-                , *args
-                , **kw):
-        return 1
-    
-    def checkPermission( self, permission, object, context) :
-        if permission == 'forbidden permission':
-            return 0
-        return 1
-
-class UnitTestUser( Acquisition.Implicit ):
-    """
-        Stubbed out manager for unit testing purposes.
-    """
-    def getId( self ):
-        return 'unit_tester'
-    
-    getUserName = getId
-
-    def allowed( self, object, object_roles=None ):
-        # for testing permissions on actions
-        if object.getId() == 'actions_dummy':
-            if 'Anonymous' in object_roles:
-                return 1
-            else:
-                return 0
-        return 1
-
 class ActionsToolTests( unittest.TestCase ):
 
     def setUp( self ):
         get_transaction().begin()
-        self._policy = PermissiveSecurityPolicy()
-        self._oldPolicy = SecurityManager.setSecurityPolicy(self._policy)
         self.connection = Zope.DB.open()
         root = self.root = self.connection.root()[ 'Application' ]
-        newSecurityManager( None, UnitTestUser().__of__( self.root ) )
 
         env = { 'SERVER_NAME' : 'http://localhost'
               , 'SERVER_PORT' : '80'
@@ -93,8 +40,6 @@
     def tearDown( self ):
         get_transaction().abort()
         self.connection.close()
-        noSecurityManager()
-        SecurityManager.setSecurityPolicy(self._oldPolicy)
 
 def test_suite():
     suite = unittest.TestSuite()