[Zope-Checkins] SVN: Zope/trunk/ Fixed OFS.ObjectManager list_import() to tolerate missing directories.

Paul Winkler pw_lists at slinkp.com
Mon Dec 12 15:55:47 EST 2005


Log message for revision 40754:
  Fixed OFS.ObjectManager list_import() to tolerate missing directories.
  

Changed:
  U   Zope/trunk/doc/CHANGES.txt
  U   Zope/trunk/lib/python/OFS/ObjectManager.py
  U   Zope/trunk/lib/python/OFS/tests/testObjectManager.py

-=-
Modified: Zope/trunk/doc/CHANGES.txt
===================================================================
--- Zope/trunk/doc/CHANGES.txt	2005-12-12 20:42:18 UTC (rev 40753)
+++ Zope/trunk/doc/CHANGES.txt	2005-12-12 20:55:46 UTC (rev 40754)
@@ -115,6 +115,9 @@
 
     Bugs Fixed
 
+      - OFS ObjectManager: Fixed list_imports() to tolerate missing
+        import directories.
+
       - Collector #1621, 1894:  Removed support for use of long-deprecated
         'whrandom' module.
 

Modified: Zope/trunk/lib/python/OFS/ObjectManager.py
===================================================================
--- Zope/trunk/lib/python/OFS/ObjectManager.py	2005-12-12 20:42:18 UTC (rev 40753)
+++ Zope/trunk/lib/python/OFS/ObjectManager.py	2005-12-12 20:55:46 UTC (rev 40754)
@@ -625,6 +625,8 @@
             paths.append(cfg.instancehome)
         for impath in paths:
             directory = os.path.join(impath, 'import')
+            if not os.path.isdir(directory):
+                continue
             listing += [f for f in os.listdir(directory)
                         if f.endswith('.zexp') or f.endswith('.xml')]
         return listing

Modified: Zope/trunk/lib/python/OFS/tests/testObjectManager.py
===================================================================
--- Zope/trunk/lib/python/OFS/tests/testObjectManager.py	2005-12-12 20:42:18 UTC (rev 40753)
+++ Zope/trunk/lib/python/OFS/tests/testObjectManager.py	2005-12-12 20:55:46 UTC (rev 40754)
@@ -108,7 +108,6 @@
         self.assertEqual( si.__ac_local_roles__, None )
 
     def test_setObject_set_owner_with_emergency_user( self ):
-
         om = self._makeOne()
 
         newSecurityManager( None, emergency_user )
@@ -380,6 +379,16 @@
         self.assertRaises(BadRequest, om._setObject, 'REQUEST', si)
         self.assertRaises(BadRequest, om._setObject, '/', si)
 
+    def test_list_imports(self):
+        om = self._makeOne()
+        # This must work whether we've done "make instance" or not.
+        # So list_imports() may return an empty list, or whatever's
+        # in skel/import. Tolerate both cases.
+        self.failUnless(isinstance(om.list_imports(), list))
+        for filename in om.list_imports():
+            self.failUnless(filename.endswith('.zexp') or
+                            filename.endswith('.xml'))
+
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTest( unittest.makeSuite( ObjectManagerTests ) )



More information about the Zope-Checkins mailing list