[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/OFS/tests - testFolderAdder.py:1.1.2.2 testFolderContents.py:1.1.2.3

Tres Seaver tseaver@zope.com
Mon, 26 Nov 2001 16:09:55 -0500


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

Modified Files:
      Tag: Zope-3x-branch
	testFolderAdder.py testFolderContents.py 
Log Message:


 - Make adding objects testable (use confirmation page).

 - Add tests for adding, and for duplicate IDs.

 - Add removal.

 - Add test for removal.


=== Zope3/lib/python/Zope/App/OFS/tests/testFolderAdder.py 1.1.2.1 => 1.1.2.2 ===
 
 from Zope.App.OFS.FolderAdder import FolderAdder
+from Zope.App.OFS.FolderAdder import DuplicateIDError
 from Zope.App.OFS.Folder import Folder
 from Zope.App.ZMI.Addable import provideAddable
 from Zope.App.ZMI.provideClass import provideClass
@@ -20,7 +21,7 @@
 
 AddPermission = []
 
-class Test( unittest.TestCase ):
+class ResistryTest( unittest.TestCase ):
 
     def setUp( self ):
         pass
@@ -103,6 +104,49 @@
         info_list = fa.listAddableInfo()
         self.assertEquals( len( info_list ), 3 )
 
+class AddingTest( unittest.TestCase ):
+
+    def setUp( self ):
+        provideClass( qualified_name='Zope.App.OFS.Folder'
+                    , _class=Folder
+                    , permission=AddPermission
+                    , title='Folder'
+                    )
+
+    def tearDown( self ):
+        from Zope.App.ZMI.Addable import _clear as clearAddables
+        from Zope.ComponentArchitecture import _clear as clearRegistry
+        clearAddables()
+        clearRegistry()
+
+    def testAdding( self ):
+        """
+            Does addition of a new object with the same ID as an existing
+            object fail?
+        """
+        folder = Folder()
+        fa = FolderAdder( folder )
+        fa.action( type_name='Zope.App.OFS.Folder', id='foo' )
+
+        self.assertEquals( len( folder.objectIds() ), 1 )
+        self.assertEquals( folder.objectIds()[0], 'foo' )
+        self.assertEquals( len( folder.objectValues() ), 1 )
+        self.assertEquals( folder.objectValues()[0].__class__, Folder )
+
+    def testDuplicates( self ):
+        """
+            Does addition of a new object with the same ID as an existing
+            object fail?
+        """
+        folder = Folder()
+        fa = FolderAdder( folder )
+        fa.action( type_name='Zope.App.OFS.Folder', id='foo' )
+
+        self.assertRaises( DuplicateIDError
+                         , fa.action
+                         ,  type_name='Zope.App.OFS.Folder'
+                         , id='foo'
+                         )
 
 
 def test_suite():


=== Zope3/lib/python/Zope/App/OFS/tests/testFolderContents.py 1.1.2.2 => 1.1.2.3 ===
         self.failIf( filter( None, map( lambda x: x['icon'], info_list ) ) )
 
+    def testRemove( self ):
+        folder = Folder()
+        subfolder = Folder()
+        folder.setObject( 'subfolder', subfolder )
+        document = Document()
+        folder.setObject( 'document', document )
+        folder.setObject( 'document2', Document() )
+
+        fc = FolderContents( folder )
+        fc.remove( name='document2' )
+        info_list = fc.listContentInfo()
+
+        self.assertEquals( len( info_list ), 2 )
+
+        ids = map( lambda x: x['id'], info_list )
+        self.assert_( 'subfolder' in ids )
+
+        objects = map( lambda x: x['object'], info_list )
+        self.assert_( subfolder in objects )
+
+        titles = map( lambda x: x['title'], info_list )
+        self.assert_( 'subfolder' in titles )
+
+        urls = map( lambda x: x['url'], info_list )
+        self.assert_( 'subfolder' in urls )
+
+        self.assertRaises( KeyError, fc.remove, 'document3' )
+
+        fc.remove( 'document3', 1 )
+
 def test_suite():
     loader = unittest.TestLoader()
     return loader.loadTestsFromTestCase( Test )