Description: DP: Revert patch from http://bugs.python.org/issue19352 as it completely breaks unittest discovery on Debian/Ubuntu Bug-Ubuntu: https://launchpad.net/bugs/1255505 Index: b/Lib/unittest/loader.py =================================================================== --- a/Lib/unittest/loader.py +++ b/Lib/unittest/loader.py @@ -256,8 +256,8 @@ class TestLoader(object): yield _make_failed_import_test(name, self.suiteClass) else: mod_file = os.path.abspath(getattr(module, '__file__', full_path)) - realpath = os.path.splitext(os.path.realpath(mod_file))[0] - fullpath_noext = os.path.splitext(os.path.realpath(full_path))[0] + realpath = os.path.splitext(mod_file)[0] + fullpath_noext = os.path.splitext(full_path)[0] if realpath.lower() != fullpath_noext.lower(): module_dir = os.path.dirname(realpath) mod_name = os.path.splitext(os.path.basename(full_path))[0] Index: b/Lib/unittest/test/test_discovery.py =================================================================== --- a/Lib/unittest/test/test_discovery.py +++ b/Lib/unittest/test/test_discovery.py @@ -315,7 +315,7 @@ class TestDiscovery(unittest.TestCase): self.assertTrue(program.failfast) self.assertTrue(program.catchbreak) - def setup_module_clash(self): + def test_detect_module_clash(self): class Module(object): __file__ = 'bar/foo.py' sys.modules['foo'] = Module @@ -342,10 +342,7 @@ class TestDiscovery(unittest.TestCase): os.listdir = listdir os.path.isfile = isfile os.path.isdir = isdir - return full_path - def test_detect_module_clash(self): - full_path = self.setup_module_clash() loader = unittest.TestLoader() mod_dir = os.path.abspath('bar') @@ -358,25 +355,6 @@ class TestDiscovery(unittest.TestCase): ) self.assertEqual(sys.path[0], full_path) - def test_module_symlink_ok(self): - full_path = self.setup_module_clash() - - original_realpath = os.path.realpath - - mod_dir = os.path.abspath('bar') - expected_dir = os.path.abspath('foo') - - def cleanup(): - os.path.realpath = original_realpath - self.addCleanup(cleanup) - - def realpath(path): - if path == os.path.join(mod_dir, 'foo.py'): - return os.path.join(expected_dir, 'foo.py') - return path - os.path.realpath = realpath - loader = unittest.TestLoader() - loader.discover(start_dir='foo', pattern='foo.py') def test_discovery_from_dotted_path(self): loader = unittest.TestLoader()