Kaydet (Commit) c6bb6c0f authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Patch #707167: Pass dircache exceptions to the caller. Fixes #682813.

Not backported because of behaviour change.
üst a64988c0
......@@ -124,7 +124,8 @@ changes to your code:
\begin{itemize}
\item Everything is all in the details!
\item dircache.listdir now passes exceptions to the caller,
instead of returning empty lists.
\end{itemize}
......
......@@ -22,15 +22,9 @@ def listdir(path):
del cache[path]
except KeyError:
cached_mtime, list = -1, []
try:
mtime = os.stat(path).st_mtime
except os.error:
return []
mtime = os.stat(path).st_mtime
if mtime != cached_mtime:
try:
list = os.listdir(path)
except os.error:
return []
list = os.listdir(path)
list.sort()
cache[path] = mtime, list
return list
......
......@@ -56,7 +56,7 @@ class DircacheTests(unittest.TestCase):
self.assert_(dircache.listdir(self.tempdir) is entries)
## UNSUCCESSFUL CASES
self.assertEquals(dircache.listdir(self.tempdir+"_nonexistent"), [])
self.assertRaises(OSError, dircache.listdir, self.tempdir+"_nonexistent")
def test_annotate(self):
self.writeTemp("test2")
......
......@@ -40,6 +40,9 @@ Extension modules
Library
-------
- dircache now passes exceptions to the caller, instead of returning
empty lists.
- The bsddb module and dbhash module now support the iterator and
mapping protocols which make them more substitutable for dictionaries
and shelves.
......
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