[Python-checkins] cpython: Issue #25694: Fix test_regrtest for installed Python

victor.stinner python-checkins at python.org
Sun Nov 22 09:45:14 EST 2015


https://hg.python.org/cpython/rev/fea86d0049d2
changeset: 99289:fea86d0049d2
user: Victor Stinner <victor.stinner at gmail.com>
date: Sun Nov 22 15:18:54 2015 +0100
summary:
 Issue #25694: Fix test_regrtest for installed Python
files:
 Lib/test/test_regrtest.py | 20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
--- a/Lib/test/test_regrtest.py
+++ b/Lib/test/test_regrtest.py
@@ -14,6 +14,7 @@
 import re
 import subprocess
 import sys
+import sysconfig
 import textwrap
 import unittest
 from test import libregrtest
@@ -306,7 +307,7 @@
 TESTNAME_REGEX = r'test_[a-z0-9_]+'
 
 def setUp(self):
- self.testdir = os.path.join(ROOT_DIR, 'Lib', 'test')
+ self.testdir = os.path.realpath(os.path.dirname(__file__))
 
 # When test_regrtest is interrupted by CTRL+c, it can leave
 # temporary test files
@@ -330,8 +331,13 @@
 
 self.addCleanup(support.unlink, path)
 # Use 'x' mode to ensure that we do not override existing tests
- with open(path, 'x', encoding='utf-8') as fp:
- fp.write(code)
+ try:
+ with open(path, 'x', encoding='utf-8') as fp:
+ fp.write(code)
+ except PermissionError as exc:
+ if not sysconfig.is_python_build():
+ self.skipTest("cannot write %s: %s" % (path, exc))
+ raise
 return name
 
 def regex_search(self, regex, output):
@@ -471,7 +477,7 @@
 
 def test_script_regrtest(self):
 # Lib/test/regrtest.py
- script = os.path.join(ROOT_DIR, 'Lib', 'test', 'regrtest.py')
+ script = os.path.join(self.testdir, 'regrtest.py')
 
 args = [*self.python_args, script, *self.regrtest_args, *self.tests]
 self.run_tests(args)
@@ -503,10 +509,12 @@
 
 def test_script_autotest(self):
 # Lib/test/autotest.py
- script = os.path.join(ROOT_DIR, 'Lib', 'test', 'autotest.py')
+ script = os.path.join(self.testdir, 'autotest.py')
 args = [*self.python_args, script, *self.regrtest_args, *self.tests]
 self.run_tests(args)
 
+ @unittest.skipUnless(sysconfig.is_python_build(),
+ 'run_tests.py script is not installed')
 def test_tools_script_run_tests(self):
 # Tools/scripts/run_tests.py
 script = os.path.join(ROOT_DIR, 'Tools', 'scripts', 'run_tests.py')
@@ -516,6 +524,8 @@
 proc = self.run_command(args)
 self.check_output(proc.stdout)
 
+ @unittest.skipUnless(sysconfig.is_python_build(),
+ 'test.bat script is not installed')
 @unittest.skipUnless(sys.platform == 'win32', 'Windows only')
 def test_tools_buildbot_test(self):
 # Tools\buildbot\test.bat
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /