From: Victor Stinner Date: Tue, 2 May 2017 11:11:50 +0000 (+0200) Subject: bpo-30132: distutils BuildExtTestCase use temp_cwd (#1380) X-Git-Tag: v3.7.0a1~880 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=92fd6c9ef54a857815e3dca8ee74b2b4f5cdf154;p=thirdparty%2FPython%2Fcpython.git bpo-30132: distutils BuildExtTestCase use temp_cwd (#1380) BuildExtTestCase of test_distutils now uses support.temp_cwd() in setUp() to remove files created in the current working in all BuildExtTestCase unit tests, not only test_build_ext(). Move also tearDown() just after setUp(). --- diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py index 96e5f030957f..a72218274ca9 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -37,17 +37,28 @@ class BuildExtTestCase(TempdirManager, from distutils.command import build_ext build_ext.USER_BASE = site.USER_BASE - def build_ext(self, *args, **kwargs): - return build_ext(*args, **kwargs) - - def test_build_ext(self): # bpo-30132: On Windows, a .pdb file may be created in the current # working directory. Create a temporary working directory to cleanup # everything at the end of the test. - with support.temp_cwd(): - self._test_build_ext() + self.temp_cwd = support.temp_cwd() + self.temp_cwd.__enter__() + self.addCleanup(self.temp_cwd.__exit__, None, None, None) + + def tearDown(self): + # Get everything back to normal + support.unload('xx') + sys.path = self.sys_path[0] + sys.path[:] = self.sys_path[1] + import site + site.USER_BASE = self.old_user_base + from distutils.command import build_ext + build_ext.USER_BASE = self.old_user_base + super(BuildExtTestCase, self).tearDown() - def _test_build_ext(self): + def build_ext(self, *args, **kwargs): + return build_ext(*args, **kwargs) + + def test_build_ext(self): cmd = support.missing_compiler_executable() if cmd is not None: self.skipTest('The %r command is not found' % cmd) @@ -91,17 +102,6 @@ class BuildExtTestCase(TempdirManager, self.assertIsInstance(xx.Null(), xx.Null) self.assertIsInstance(xx.Str(), xx.Str) - def tearDown(self): - # Get everything back to normal - support.unload('xx') - sys.path = self.sys_path[0] - sys.path[:] = self.sys_path[1] - import site - site.USER_BASE = self.old_user_base - from distutils.command import build_ext - build_ext.USER_BASE = self.old_user_base - super(BuildExtTestCase, self).tearDown() - def test_solaris_enable_shared(self): dist = Distribution({'name': 'xx'}) cmd = self.build_ext(dist)