[CMF-checkins] CVS: CMF/CMFDefault/tests - test_Portal.py:1.2 test_all.py:1.12

Tres Seaver tseaver@zope.com
Wed, 10 Jul 2002 01:42:03 -0400


Update of /cvs-repository/CMF/CMFDefault/tests
In directory cvs.zope.org:/tmp/cvs-serv8513/CMFDefault/tests

Modified Files:
	test_all.py 
Added Files:
	test_Portal.py 
Log Message:
 - Merge edit->reindex fixes from 1.3 branch.

=== CMF/CMFDefault/tests/test_Portal.py 1.1 => 1.2 ===
+##############################################################################
+#
+# Copyright (c) 2002 Zope Corporation and Contributors. All Rights Reserved.
+# 
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE
+# 
+##############################################################################
+
+""" Unit / functional tests for a CMFSite.
+
+$Id$
+"""
+
+import unittest
+
+import Zope     # product initialization
+
+from Products.CMFCore.tests.base.testcase import SecurityRequestTest
+
+from Acquisition import aq_base
+
+class CMFSiteTests( SecurityRequestTest ):
+
+    def _makeSite( self, id='testsite' ):
+
+        from Products.CMFDefault.Portal import manage_addCMFSite
+
+        manage_addCMFSite( self.root, id )
+        return getattr( self.root, id )
+
+    def _makeContent( self, site, portal_type, id='document', **kw ):
+
+        site.invokeFactory( type_name=portal_type, id=id )
+        content = getattr( site, id )
+
+        if getattr( aq_base( content ), 'editMetadata', None ) is not None:
+            content.editMetadata( **kw )
+
+        return content
+
+    def test_new( self ):
+
+        site = self._makeSite()
+        self.assertEqual( len( site.portal_catalog ), 0 )
+
+    def test_MetadataCataloguing( self ):
+
+        site = self._makeSite()
+        catalog = site.portal_catalog
+
+        portal_types = [ x for x in site.portal_types.listContentTypes()
+                           if x not in ( 'Discussion Item'
+                                       , 'Folder'
+                                       , 'Topic'
+                                       ) ]
+
+        for portal_type in portal_types:
+
+            doc = self._makeContent( site
+                                   , portal_type=portal_type
+                                   , title='Foo' )
+            self.assertEqual( len( catalog ), 1 )
+
+            rid = catalog._catalog.paths.keys()[0]
+            self.assertEqual( _getMetadata( catalog, rid ), 'Foo' )
+
+            doc.editMetadata( title='Bar' )
+            self.assertEqual( _getMetadata( catalog, rid ), 'Bar' )
+
+            site._delObject( doc.getId() )
+            self.assertEqual( len( catalog ), 0 )
+
+    def test_DocumentEditCataloguing( self ):
+
+        site = self._makeSite()
+        catalog = site.portal_catalog
+
+        doc = self._makeContent( site
+                               , portal_type='Document'
+                               , title='Foo' )
+
+        rid = catalog._catalog.paths.keys()[0]
+
+        doc.setTitle( 'Bar' )   # doesn't reindex
+        self.assertEqual( _getMetadata( catalog, rid ), 'Foo' )
+
+        doc.edit( text_format='structured-text'
+                , text='Some Text Goes Here\n\n   A paragraph\n   for you.'
+                )
+        self.assertEqual( _getMetadata( catalog, rid ), 'Bar' )
+
+    def test_ImageEditCataloguing( self ):
+
+        site = self._makeSite()
+        catalog = site.portal_catalog
+
+        doc = self._makeContent( site
+                               , portal_type='Image'
+                               , title='Foo' )
+
+        rid = catalog._catalog.paths.keys()[0]
+
+        doc.setTitle( 'Bar' )   # doesn't reindex
+        self.assertEqual( _getMetadata( catalog, rid ), 'Foo' )
+
+        doc.edit( 'GIF89a' )
+        self.assertEqual( _getMetadata( catalog, rid ), 'Bar' )
+
+    def test_FileEditCataloguing( self ):
+
+        site = self._makeSite()
+        catalog = site.portal_catalog
+
+        doc = self._makeContent( site
+                               , portal_type='File'
+                               , title='Foo' )
+
+        rid = catalog._catalog.paths.keys()[0]
+
+        doc.setTitle( 'Bar' )   # doesn't reindex
+        self.assertEqual( _getMetadata( catalog, rid ), 'Foo' )
+
+        doc.edit( '%PDF-1.2\r' )
+        self.assertEqual( _getMetadata( catalog, rid ), 'Bar' )
+
+    def test_LinkEditCataloguing( self ):
+
+        site = self._makeSite()
+        catalog = site.portal_catalog
+
+        doc = self._makeContent( site
+                               , portal_type='Link'
+                               , title='Foo' )
+
+        rid = catalog._catalog.paths.keys()[0]
+
+        doc.setTitle( 'Bar' )   # doesn't reindex
+        self.assertEqual( _getMetadata( catalog, rid ), 'Foo' )
+
+        doc.edit( 'http://www.example.com' )
+        self.assertEqual( _getMetadata( catalog, rid ), 'Bar' )
+
+    def test_NewsItemEditCataloguing( self ):
+
+        site = self._makeSite()
+        catalog = site.portal_catalog
+
+        doc = self._makeContent( site
+                               , portal_type='News Item'
+                               , title='Foo' )
+
+        rid = catalog._catalog.paths.keys()[0]
+
+        doc.setTitle( 'Bar' )   # doesn't reindex
+        self.assertEqual( _getMetadata( catalog, rid ), 'Foo' )
+
+        doc.edit( '<h1>Extra!</h1>' )
+        self.assertEqual( _getMetadata( catalog, rid ), 'Bar' )
+
+
+def _getMetadata( catalog, rid, field='Title' ):
+    md = catalog.getMetadataForRID( rid )
+    return md[ field ]
+
+def test_suite():
+
+    suite = unittest.TestSuite()
+
+    suite.addTest( unittest.makeSuite( CMFSiteTests ) )
+
+    return suite
+
+
+if __name__ == '__main__':
+
+    unittest.main( defaultTest = 'test_suite' )


=== CMF/CMFDefault/tests/test_all.py 1.11 => 1.12 ===
         'test_MetadataTool',
         'test_utils',
         'test_join',
+        'test_Portal',
         ])
 
 if __name__ == '__main__':