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