[CMF-checkins] CVS: CMF/CMFCore/tests - test_OpaqueItems.py:1.2

Grégoire Weber zope.org at incept.ch
Fri Jan 2 05:03:40 EST 2004


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

Modified Files:
	test_OpaqueItems.py 
Log Message:
uups, had to correct win crlfs to *nix lfs


=== CMF/CMFCore/tests/test_OpaqueItems.py 1.1 => 1.2 ===
--- CMF/CMFCore/tests/test_OpaqueItems.py:1.1	Thu Jan  1 20:06:29 2004
+++ CMF/CMFCore/tests/test_OpaqueItems.py	Fri Jan  2 05:03:39 2004
@@ -1,247 +1,247 @@
-from unittest import TestCase, TestSuite, makeSuite, main
-from types import StringType
-
-import Zope
-try:
-    Zope.startup()
-except AttributeError:
-    # for Zope versions before 2.6.1
-    pass
-try:
-    from Interface.Verify import verifyClass
-except ImportError:
-    # for Zope versions before 2.6.0
-    from Interface import verify_class_implementation as verifyClass
-
-from Products.CMFCore.TypesTool import TypesTool
-from Products.CMFCore.PortalFolder import PortalFolder
-
-from Products.CMFCore.tests.base.testcase import SecurityTest
-from Products.CMFCore.tests.base.dummy import DummyContent as OriginalDummyContent
-
-from Products.CMFCore.interfaces.IOpaqueItems import ICallableOpaqueItemWithHooks
-
-
-# -------------------------------------------
-# Helper classes and functions
-# -------------------------------------------
-
-def extra_meta_types():
-    return [{'name': 'Dummy', 'action': 'manage_addFolder'}]
-
-def addDummyContent(container, id, opaqueItem):
-    container._setObject(id, DummyContent(id, opaqueItem=opaqueItem, catalog=1))
-    return getattr(container, id)
-
-class DummyContent(OriginalDummyContent):
-    """ A Dummy piece of PortalContent with additional attributes
-    """
-    
-    def __init__(self, id='dummy', opaqueItem=None, *args, **kw ):
-        apply(OriginalDummyContent.__init__, (self, id) + args, kw)
-        if opaqueItem is None:
-            self.opaqueItem = 'noncallable'
-            self.opaqueItemsId = 'opaqueItem'
-        elif type(opaqueItem) is StringType:
-            setattr(self, opaqueItem, HooksOnly(opaqueItem))
-            self.opaqueItemsId = opaqueItem
-        else:
-            self.opaqueItem = opaqueItem('opaqueItem')
-            self.opaqueItemsId = 'opaqueItem'
-        
-    # Ensure additional attributes get copied
-    def _getCopy(self, container):
-        obj = DummyContent(self.id, catalog=self.catalog)
-        setattr(obj, self.opaqueItemsId, getattr(self, self.opaqueItemsId))
-        return obj
-        
-    def isNotifiedByAfterAdd(self):
-        return getattr(getattr(self, self.opaqueItemsId), 'addCount', None)
-    
-    def isNotifiedByAfterClone(self):
-        return getattr(getattr(self, self.opaqueItemsId), 'cloneCount', None)
-    
-    def isNotifiedByBeforeDelete(self):
-        return getattr(getattr(self, self.opaqueItemsId), 'deleteCount', None)
-    
-class OpaqueBase:
-    """ Opaque item without manage_after/before hookes
-    """
-    def __init__(self, id):
-        self.id = id
-        self.addCount = self.cloneCount = self.deleteCount = 0
-        self.addCounter = self.cloneCounter = self.deleteCounter = 1
-
-class MarkerOnly(OpaqueBase):
-    """ Opaque item without manage_after/before hookes but marked 
-    as callable
-    """
-    __implements__ = (
-        ICallableOpaqueItemWithHooks,
-    )
-
-class HooksOnly(OpaqueBase):
-    """ Opaque item with manage_after/before hookes but not marked 
-    as callable
-    """
-    def manage_afterAdd(self, item, container):
-        self.addCount = self.addCounter
-        self.addCounter += 1
-    
-    def manage_afterClone(self, item):
-        self.cloneCount = self.cloneCounter
-        self.cloneCounter += 1
-    
-    def manage_beforeDelete(self, item, container):
-        self.deleteCount = self.deleteCounter
-        self.deleteCounter += 1
-    
-class HooksAndMarker(HooksOnly, MarkerOnly):
-    """ Opaque item with manage_after/before hookes and marked
-    as callable
-    """
-    pass
-
-
-# -------------------------------------------
-# Unit Tests
-# -------------------------------------------
-
-class ManageBeforeAfterTests(SecurityTest):
-
-    def setUp(self):
-        SecurityTest.setUp(self)
-        
-        root = self.root
-        
-        # setting up types tool
-        root._setObject( 'portal_types', TypesTool() )
-        
-        # setup portal
-        try: root._delObject('test')
-        except AttributeError: pass
-        root._setObject('test', PortalFolder('test', ''))
-        self.test = test = self.root.test
-
-        # setting up folders
-        test._setObject( 'folder', PortalFolder( 'folder', '' ) )
-        folder = self.folder = test.folder
-        folder._setObject( 'sub', PortalFolder( 'sub', '' ) )
-        sub = self.sub = folder.sub
-        
-        #----- hacks to allow pasting (see also test_PortalFolder)
-        # WAAA! force sub to allow paste of Dummy object.
-        sub.all_meta_types = extra_meta_types()
-        
-        # delete items if necessary
-        try: folder._delObject('dummy')
-        except AttributeError: pass
-        try: sub._delObject('dummy')
-        except AttributeError: pass
-        
-    def test_nonCallableItem(self):
-        # no exception should be raised
-        folder = self.folder
-        sub = self.sub
-        dummy = addDummyContent(folder, 'dummy', None)
-        
-        # WAAAA! must get _p_jar set
-        old, dummy._p_jar = sub._p_jar, self.root._p_jar
-        try:
-            cp = folder.manage_copyObjects(ids=['dummy'])
-            sub.manage_pasteObjects(cp)
-        finally:
-            dummy._p_jar = old
-
-    def test_callableItemWithMarkerOnly(self):
-        folder = self.folder
-        sub = self.sub
-        dummy = addDummyContent(folder, 'dummy', MarkerOnly)
-        
-        self.failIf(dummy.isNotifiedByAfterAdd())
-        self.failIf(dummy.isNotifiedByAfterClone())
-        self.failIf(dummy.isNotifiedByBeforeDelete())
-        
-        # WAAAA! must get _p_jar set
-        old, dummy._p_jar = sub._p_jar, self.root._p_jar
-        try:
-            cp = folder.manage_copyObjects(ids=['dummy'])
-            sub.manage_pasteObjects(cp)
-        finally:
-            dummy._p_jar = old
-        
-        self.failIf(dummy.isNotifiedByAfterAdd())
-        self.failIf(dummy.isNotifiedByAfterClone())
-        self.failIf(dummy.isNotifiedByBeforeDelete())
-        
-    def test_callableItemWithHooksOnly(self):
-        folder = self.folder
-        sub = self.sub
-        dummy = addDummyContent(folder, 'dummy', HooksOnly)
-        
-        self.failIf(dummy.isNotifiedByAfterAdd())
-        self.failIf(dummy.isNotifiedByAfterClone())
-        self.failIf(dummy.isNotifiedByBeforeDelete())
-        
-        # WAAAA! must get _p_jar set
-        old, dummy._p_jar = sub._p_jar, self.root._p_jar
-        try:
-            cp = folder.manage_copyObjects(ids=['dummy'])
-            sub.manage_pasteObjects(cp)
-        finally:
-            dummy._p_jar = old
-        
-        self.failIf(dummy.isNotifiedByAfterAdd())
-        self.failIf(dummy.isNotifiedByAfterClone())
-        self.failIf(dummy.isNotifiedByBeforeDelete())
-        
-    def test_callableItemWithHooksAndMarker(self):
-        folder = self.folder
-        sub = self.sub
-        dummy = addDummyContent(folder, 'dummy', HooksAndMarker)
-        
-        self.assertEqual(dummy.isNotifiedByAfterAdd(), 1)
-        self.failIf(dummy.isNotifiedByAfterClone())
-        self.failIf(dummy.isNotifiedByBeforeDelete())
-        
-        # WAAAA! must get _p_jar set
-        old, dummy._p_jar = sub._p_jar, self.root._p_jar
-        try:
-            cp = folder.manage_copyObjects(ids=['dummy'])
-            sub.manage_pasteObjects(cp)
-        finally:
-            dummy._p_jar = old
-        
-        self.assertEqual(dummy.isNotifiedByAfterAdd(), 2)
-        self.assertEqual(dummy.isNotifiedByAfterClone(), 1)
-        self.failIf(dummy.isNotifiedByBeforeDelete())
-        
-    def test_talkbackItem(self):
-        folder = self.folder
-        sub = self.sub
-        
-        dummy = addDummyContent(folder, 'dummy', 'talkback')
-        
-        self.assertEqual(dummy.isNotifiedByAfterAdd(), 1)
-        self.failIf(dummy.isNotifiedByAfterClone())
-        self.failIf(dummy.isNotifiedByBeforeDelete())
-        
-        # WAAAA! must get _p_jar set
-        old, dummy._p_jar = sub._p_jar, self.root._p_jar
-        try:
-            cp = folder.manage_copyObjects(ids=['dummy'])
-            sub.manage_pasteObjects(cp)
-        finally:
-            dummy._p_jar = old
-        
-        self.assertEqual(dummy.isNotifiedByAfterAdd(), 2)
-        self.assertEqual(dummy.isNotifiedByAfterClone(), 1)
-        self.failIf(dummy.isNotifiedByBeforeDelete())
-        
-def test_suite():
-    return TestSuite((
-        makeSuite(ManageBeforeAfterTests),
-        ))
-
-if __name__ == '__main__':
-    main(defaultTest='test_suite')
+from unittest import TestCase, TestSuite, makeSuite, main
+from types import StringType
+
+import Zope
+try:
+    Zope.startup()
+except AttributeError:
+    # for Zope versions before 2.6.1
+    pass
+try:
+    from Interface.Verify import verifyClass
+except ImportError:
+    # for Zope versions before 2.6.0
+    from Interface import verify_class_implementation as verifyClass
+
+from Products.CMFCore.TypesTool import TypesTool
+from Products.CMFCore.PortalFolder import PortalFolder
+
+from Products.CMFCore.tests.base.testcase import SecurityTest
+from Products.CMFCore.tests.base.dummy import DummyContent as OriginalDummyContent
+
+from Products.CMFCore.interfaces.IOpaqueItems import ICallableOpaqueItemWithHooks
+
+
+# -------------------------------------------
+# Helper classes and functions
+# -------------------------------------------
+
+def extra_meta_types():
+    return [{'name': 'Dummy', 'action': 'manage_addFolder'}]
+
+def addDummyContent(container, id, opaqueItem):
+    container._setObject(id, DummyContent(id, opaqueItem=opaqueItem, catalog=1))
+    return getattr(container, id)
+
+class DummyContent(OriginalDummyContent):
+    """ A Dummy piece of PortalContent with additional attributes
+    """
+    
+    def __init__(self, id='dummy', opaqueItem=None, *args, **kw ):
+        apply(OriginalDummyContent.__init__, (self, id) + args, kw)
+        if opaqueItem is None:
+            self.opaqueItem = 'noncallable'
+            self.opaqueItemsId = 'opaqueItem'
+        elif type(opaqueItem) is StringType:
+            setattr(self, opaqueItem, HooksOnly(opaqueItem))
+            self.opaqueItemsId = opaqueItem
+        else:
+            self.opaqueItem = opaqueItem('opaqueItem')
+            self.opaqueItemsId = 'opaqueItem'
+        
+    # Ensure additional attributes get copied
+    def _getCopy(self, container):
+        obj = DummyContent(self.id, catalog=self.catalog)
+        setattr(obj, self.opaqueItemsId, getattr(self, self.opaqueItemsId))
+        return obj
+        
+    def isNotifiedByAfterAdd(self):
+        return getattr(getattr(self, self.opaqueItemsId), 'addCount', None)
+    
+    def isNotifiedByAfterClone(self):
+        return getattr(getattr(self, self.opaqueItemsId), 'cloneCount', None)
+    
+    def isNotifiedByBeforeDelete(self):
+        return getattr(getattr(self, self.opaqueItemsId), 'deleteCount', None)
+    
+class OpaqueBase:
+    """ Opaque item without manage_after/before hookes
+    """
+    def __init__(self, id):
+        self.id = id
+        self.addCount = self.cloneCount = self.deleteCount = 0
+        self.addCounter = self.cloneCounter = self.deleteCounter = 1
+
+class MarkerOnly(OpaqueBase):
+    """ Opaque item without manage_after/before hookes but marked 
+    as callable
+    """
+    __implements__ = (
+        ICallableOpaqueItemWithHooks,
+    )
+
+class HooksOnly(OpaqueBase):
+    """ Opaque item with manage_after/before hookes but not marked 
+    as callable
+    """
+    def manage_afterAdd(self, item, container):
+        self.addCount = self.addCounter
+        self.addCounter += 1
+    
+    def manage_afterClone(self, item):
+        self.cloneCount = self.cloneCounter
+        self.cloneCounter += 1
+    
+    def manage_beforeDelete(self, item, container):
+        self.deleteCount = self.deleteCounter
+        self.deleteCounter += 1
+    
+class HooksAndMarker(HooksOnly, MarkerOnly):
+    """ Opaque item with manage_after/before hookes and marked
+    as callable
+    """
+    pass
+
+
+# -------------------------------------------
+# Unit Tests
+# -------------------------------------------
+
+class ManageBeforeAfterTests(SecurityTest):
+
+    def setUp(self):
+        SecurityTest.setUp(self)
+        
+        root = self.root
+        
+        # setting up types tool
+        root._setObject( 'portal_types', TypesTool() )
+        
+        # setup portal
+        try: root._delObject('test')
+        except AttributeError: pass
+        root._setObject('test', PortalFolder('test', ''))
+        self.test = test = self.root.test
+
+        # setting up folders
+        test._setObject( 'folder', PortalFolder( 'folder', '' ) )
+        folder = self.folder = test.folder
+        folder._setObject( 'sub', PortalFolder( 'sub', '' ) )
+        sub = self.sub = folder.sub
+        
+        #----- hacks to allow pasting (see also test_PortalFolder)
+        # WAAA! force sub to allow paste of Dummy object.
+        sub.all_meta_types = extra_meta_types()
+        
+        # delete items if necessary
+        try: folder._delObject('dummy')
+        except AttributeError: pass
+        try: sub._delObject('dummy')
+        except AttributeError: pass
+        
+    def test_nonCallableItem(self):
+        # no exception should be raised
+        folder = self.folder
+        sub = self.sub
+        dummy = addDummyContent(folder, 'dummy', None)
+        
+        # WAAAA! must get _p_jar set
+        old, dummy._p_jar = sub._p_jar, self.root._p_jar
+        try:
+            cp = folder.manage_copyObjects(ids=['dummy'])
+            sub.manage_pasteObjects(cp)
+        finally:
+            dummy._p_jar = old
+
+    def test_callableItemWithMarkerOnly(self):
+        folder = self.folder
+        sub = self.sub
+        dummy = addDummyContent(folder, 'dummy', MarkerOnly)
+        
+        self.failIf(dummy.isNotifiedByAfterAdd())
+        self.failIf(dummy.isNotifiedByAfterClone())
+        self.failIf(dummy.isNotifiedByBeforeDelete())
+        
+        # WAAAA! must get _p_jar set
+        old, dummy._p_jar = sub._p_jar, self.root._p_jar
+        try:
+            cp = folder.manage_copyObjects(ids=['dummy'])
+            sub.manage_pasteObjects(cp)
+        finally:
+            dummy._p_jar = old
+        
+        self.failIf(dummy.isNotifiedByAfterAdd())
+        self.failIf(dummy.isNotifiedByAfterClone())
+        self.failIf(dummy.isNotifiedByBeforeDelete())
+        
+    def test_callableItemWithHooksOnly(self):
+        folder = self.folder
+        sub = self.sub
+        dummy = addDummyContent(folder, 'dummy', HooksOnly)
+        
+        self.failIf(dummy.isNotifiedByAfterAdd())
+        self.failIf(dummy.isNotifiedByAfterClone())
+        self.failIf(dummy.isNotifiedByBeforeDelete())
+        
+        # WAAAA! must get _p_jar set
+        old, dummy._p_jar = sub._p_jar, self.root._p_jar
+        try:
+            cp = folder.manage_copyObjects(ids=['dummy'])
+            sub.manage_pasteObjects(cp)
+        finally:
+            dummy._p_jar = old
+        
+        self.failIf(dummy.isNotifiedByAfterAdd())
+        self.failIf(dummy.isNotifiedByAfterClone())
+        self.failIf(dummy.isNotifiedByBeforeDelete())
+        
+    def test_callableItemWithHooksAndMarker(self):
+        folder = self.folder
+        sub = self.sub
+        dummy = addDummyContent(folder, 'dummy', HooksAndMarker)
+        
+        self.assertEqual(dummy.isNotifiedByAfterAdd(), 1)
+        self.failIf(dummy.isNotifiedByAfterClone())
+        self.failIf(dummy.isNotifiedByBeforeDelete())
+        
+        # WAAAA! must get _p_jar set
+        old, dummy._p_jar = sub._p_jar, self.root._p_jar
+        try:
+            cp = folder.manage_copyObjects(ids=['dummy'])
+            sub.manage_pasteObjects(cp)
+        finally:
+            dummy._p_jar = old
+        
+        self.assertEqual(dummy.isNotifiedByAfterAdd(), 2)
+        self.assertEqual(dummy.isNotifiedByAfterClone(), 1)
+        self.failIf(dummy.isNotifiedByBeforeDelete())
+        
+    def test_talkbackItem(self):
+        folder = self.folder
+        sub = self.sub
+        
+        dummy = addDummyContent(folder, 'dummy', 'talkback')
+        
+        self.assertEqual(dummy.isNotifiedByAfterAdd(), 1)
+        self.failIf(dummy.isNotifiedByAfterClone())
+        self.failIf(dummy.isNotifiedByBeforeDelete())
+        
+        # WAAAA! must get _p_jar set
+        old, dummy._p_jar = sub._p_jar, self.root._p_jar
+        try:
+            cp = folder.manage_copyObjects(ids=['dummy'])
+            sub.manage_pasteObjects(cp)
+        finally:
+            dummy._p_jar = old
+        
+        self.assertEqual(dummy.isNotifiedByAfterAdd(), 2)
+        self.assertEqual(dummy.isNotifiedByAfterClone(), 1)
+        self.failIf(dummy.isNotifiedByBeforeDelete())
+        
+def test_suite():
+    return TestSuite((
+        makeSuite(ManageBeforeAfterTests),
+        ))
+
+if __name__ == '__main__':
+    main(defaultTest='test_suite')




More information about the CMF-checkins mailing list