Commit 1b3fb5bb authored by Paul Winkler's avatar Paul Winkler

Fixed OFS.ObjectManager list_import() to tolerate missing directories.

parent 81f1124f
...@@ -115,6 +115,9 @@ Zope Changes ...@@ -115,6 +115,9 @@ Zope Changes
Bugs Fixed Bugs Fixed
- OFS ObjectManager: Fixed list_imports() to tolerate missing
import directories.
- Collector #1621, 1894: Removed support for use of long-deprecated - Collector #1621, 1894: Removed support for use of long-deprecated
'whrandom' module. 'whrandom' module.
......
...@@ -625,6 +625,8 @@ class ObjectManager( ...@@ -625,6 +625,8 @@ class ObjectManager(
paths.append(cfg.instancehome) paths.append(cfg.instancehome)
for impath in paths: for impath in paths:
directory = os.path.join(impath, 'import') directory = os.path.join(impath, 'import')
if not os.path.isdir(directory):
continue
listing += [f for f in os.listdir(directory) listing += [f for f in os.listdir(directory)
if f.endswith('.zexp') or f.endswith('.xml')] if f.endswith('.zexp') or f.endswith('.xml')]
return listing return listing
......
...@@ -108,7 +108,6 @@ class ObjectManagerTests(PlacelessSetup, unittest.TestCase): ...@@ -108,7 +108,6 @@ class ObjectManagerTests(PlacelessSetup, unittest.TestCase):
self.assertEqual( si.__ac_local_roles__, None ) self.assertEqual( si.__ac_local_roles__, None )
def test_setObject_set_owner_with_emergency_user( self ): def test_setObject_set_owner_with_emergency_user( self ):
om = self._makeOne() om = self._makeOne()
newSecurityManager( None, emergency_user ) newSecurityManager( None, emergency_user )
...@@ -380,6 +379,16 @@ class ObjectManagerTests(PlacelessSetup, unittest.TestCase): ...@@ -380,6 +379,16 @@ class ObjectManagerTests(PlacelessSetup, unittest.TestCase):
self.assertRaises(BadRequest, om._setObject, 'REQUEST', si) self.assertRaises(BadRequest, om._setObject, 'REQUEST', si)
self.assertRaises(BadRequest, om._setObject, '/', 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(): def test_suite():
suite = unittest.TestSuite() suite = unittest.TestSuite()
suite.addTest( unittest.makeSuite( ObjectManagerTests ) ) suite.addTest( unittest.makeSuite( ObjectManagerTests ) )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment