[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 )