From 186335bd5cbe839348922aef3661e17247def27b Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Sun, 22 Aug 2010 22:11:06 +0000 Subject: [PATCH] Make sure that no __pycache__ directory is needlessly left behind when testing imports with an empty string in sys.path. --- Lib/importlib/test/source/test_file_loader.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Lib/importlib/test/source/test_file_loader.py b/Lib/importlib/test/source/test_file_loader.py index ce6f5d47a31..0ffe78dfa10 100644 --- a/Lib/importlib/test/source/test_file_loader.py +++ b/Lib/importlib/test/source/test_file_loader.py @@ -8,6 +8,7 @@ import imp import marshal import os import py_compile +import shutil import stat import sys import unittest @@ -112,18 +113,20 @@ class SimpleTest(unittest.TestCase): def test_file_from_empty_string_dir(self): # Loading a module found from an empty string entry on sys.path should # not only work, but keep all attributes relative. - with open('_temp.py', 'w') as file: + file_path = '_temp.py' + with open(file_path, 'w') as file: file.write("# test file for importlib") try: with util.uncache('_temp'): - loader = _bootstrap._SourceFileLoader('_temp', '_temp.py') + loader = _bootstrap._SourceFileLoader('_temp', file_path) mod = loader.load_module('_temp') - self.assertEqual('_temp.py', mod.__file__) - self.assertEqual(imp.cache_from_source('_temp.py'), + self.assertEqual(file_path, mod.__file__) + self.assertEqual(imp.cache_from_source(file_path), mod.__cached__) - finally: - os.unlink('_temp.py') + os.unlink(file_path) + pycache = os.path.dirname(imp.cache_from_source(file_path)) + shutil.rmtree(pycache) class BadBytecodeTest(unittest.TestCase): @@ -380,7 +383,7 @@ def test_main(): run_unittest(SimpleTest, SourceLoaderBadBytecodeTest, SourcelessLoaderBadBytecodeTest - ) + ) if __name__ == '__main__':