Commit 772d36c4 authored by Paul Winkler's avatar Paul Winkler

OFS ObjectManager: Fixed list_imports() to tolerate missing

import directories. (Merged from trunk.)
parent e0b8013b
...@@ -27,6 +27,9 @@ Zope Changes ...@@ -27,6 +27,9 @@ Zope Changes
Bugs fixed Bugs fixed
- OFS ObjectManager: Fixed list_imports() to tolerate missing
import directories.
- Collector #1965: 'get_transaction' missing from builtins without - Collector #1965: 'get_transaction' missing from builtins without
sufficient deprecation notice (ZODB 3.6 properly removed it, but sufficient deprecation notice (ZODB 3.6 properly removed it, but
Zope needs to keep it for another release). Zope needs to keep it for another release).
......
...@@ -619,6 +619,8 @@ class ObjectManager( ...@@ -619,6 +619,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