summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-10-17 19:46:36 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-10-17 19:46:36 (GMT)
commit0b0ca0c37ebed055e540432a521090670287ebd4 (patch)
tree4c51b2aaae2515ad2989cd00968010d3251d0420 /Lib
parent3ebc22a62816a381eff9d9ff2afb0bd45d8f0ea3 (diff)
downloadcpython-0b0ca0c37ebed055e540432a521090670287ebd4.zip
cpython-0b0ca0c37ebed055e540432a521090670287ebd4.tar.gz
cpython-0b0ca0c37ebed055e540432a521090670287ebd4.tar.bz2
test_httpservers: skip CGI tests if Python executable path is not encodable
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_httpservers.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py
index 08f707f..857bb39 100644
--- a/Lib/test/test_httpservers.py
+++ b/Lib/test/test_httpservers.py
@@ -295,9 +295,12 @@ class CGIHTTPServerTestCase(BaseTestCase):
def setUp(self):
BaseTestCase.setUp(self)
+ self.cwd = os.getcwd()
self.parent_dir = tempfile.mkdtemp()
self.cgi_dir = os.path.join(self.parent_dir, 'cgi-bin')
os.mkdir(self.cgi_dir)
+ self.file1_path = None
+ self.file2_path = None
# The shebang line should be pure ASCII: use symlink if possible.
# See issue #7668.
@@ -309,6 +312,13 @@ class CGIHTTPServerTestCase(BaseTestCase):
self.file1_path = os.path.join(self.cgi_dir, 'file1.py')
with open(self.file1_path, 'w') as file1:
+ try:
+ self.pythonexe.encode(file1.encoding)
+ except UnicodeEncodeError:
+ self.tearDown()
+ raise self.skipTest(
+ "Python executable path is not encodable to %s"
+ % file1.encoding)
file1.write(cgi_file1 % self.pythonexe)
os.chmod(self.file1_path, 0o777)
@@ -317,7 +327,6 @@ class CGIHTTPServerTestCase(BaseTestCase):
file2.write(cgi_file2 % self.pythonexe)
os.chmod(self.file2_path, 0o777)
- self.cwd = os.getcwd()
os.chdir(self.parent_dir)
def tearDown(self):
@@ -325,8 +334,10 @@ class CGIHTTPServerTestCase(BaseTestCase):
os.chdir(self.cwd)
if self.pythonexe != sys.executable:
os.remove(self.pythonexe)
- os.remove(self.file1_path)
- os.remove(self.file2_path)
+ if self.file1_path:
+ os.remove(self.file1_path)
+ if self.file2_path:
+ os.remove(self.file2_path)
os.rmdir(self.cgi_dir)
os.rmdir(self.parent_dir)
finally: