Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Close files in the module_loading tests always.

  • Loading branch information...
commit ca6015ca71785dc59106ca36634d93daf59ff5bb 1 parent ebc1325
Alex Gaynor authored
Showing with 11 additions and 2 deletions.
  1. +11 −2 tests/regressiontests/utils/module_loading.py
View
13 tests/regressiontests/utils/module_loading.py
@@ -109,7 +109,12 @@ def __init__(self):
def find_module(self, fullname, path=None):
tail = fullname.rsplit('.', 1)[-1]
try:
- self._cache[fullname] = imp.find_module(tail, path)
+ fd, fn, info = imp.find_module(tail, path)
+ if fullname in self._cache:
+ old_fd = self._cache[fullname][0]
+ if old_fd:
+ old_fd.close()
+ self._cache[fullname] = (fd, fn, info)
except ImportError:
return None
else:
@@ -119,7 +124,11 @@ def load_module(self, fullname):
if fullname in sys.modules:
return sys.modules[fullname]
fd, fn, info = self._cache[fullname]
- return imp.load_module(fullname, fd, fn, info)
+ try:
+ return imp.load_module(fullname, fd, fn, info)
+ finally:
+ if fd:
+ fd.close()
class TestFinder(object):
def __init__(self, *args, **kwargs):

0 comments on commit ca6015c

Please sign in to comment.
Something went wrong with that request. Please try again.