Hi,
On 07/08/2010 13.09, victor.stinner wrote:
Author: victor.stinner
Date: Sat Aug 7 12:09:35 2010
New Revision: 83778
Log:
Issue #9425: skip tests if a filename is not encodable
Modified:
python/branches/py3k/Lib/test/test_import.py
python/branches/py3k/Lib/test/test_sax.py
python/branches/py3k/Lib/test/test_sys.py
python/branches/py3k/Lib/test/test_urllib.py
python/branches/py3k/Lib/test/test_urllib2.py
python/branches/py3k/Lib/test/test_xml_etree.py
Modified: python/branches/py3k/Lib/test/test_import.py
==============================================================================
--- python/branches/py3k/Lib/test/test_import.py (original)
+++ python/branches/py3k/Lib/test/test_import.py Sat Aug 7 12:09:35 2010
@@ -291,6 +291,11 @@
def test_import_by_filename(self):
path = os.path.abspath(TESTFN)
+ encoding = sys.getfilesystemencoding()
+ try:
+ path.encode(encoding)
+ except UnicodeEncodeError:
+ self.skipTest('path is not encodable to {}'.format(encoding))
with self.assertRaises(ImportError) as c:
__import__(path)
self.assertEqual("Import by filename is not supported.",
Modified: python/branches/py3k/Lib/test/test_sax.py
==============================================================================
--- python/branches/py3k/Lib/test/test_sax.py (original)
+++ python/branches/py3k/Lib/test/test_sax.py Sat Aug 7 12:09:35 2010
@@ -18,6 +18,11 @@
TEST_XMLFILE = findfile("test.xml", subdir="xmltestdata")
TEST_XMLFILE_OUT = findfile("test.xml.out", subdir="xmltestdata")
+try:
+ TEST_XMLFILE.encode("utf8")
+ TEST_XMLFILE_OUT.encode("utf8")
+except UnicodeEncodeError:
+ raise unittest.SkipTest("filename is not encodable to utf8")
ns_uri = "http://www.python.org/xml-ns/saxtest/"
Modified: python/branches/py3k/Lib/test/test_sys.py
==============================================================================
--- python/branches/py3k/Lib/test/test_sys.py (original)
+++ python/branches/py3k/Lib/test/test_sys.py Sat Aug 7 12:09:35 2010
@@ -509,8 +509,10 @@
p = subprocess.Popen([sys.executable, "-c", code],
stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
self.assertEqual(p.returncode, 1)
- self.assert_(b"UnicodeEncodeError:" in stderr,
- "%r not in %s" % (b"UniodeEncodeError:", ascii(stderr)))
+ self.assertIn(
+ br"UnicodeEncodeError: 'utf-8' codec can't encode character "
+ br"'\udcff' in position 7: surrogates not allowed",
+ stderr)
This caused some failures in the buildbots:
test test_sys failed -- Traceback (most recent call last):
File "/home2/buildbot/slave/3.x.loewis-sun/build/Lib/test/test_sys.py", line
515, in test_main_invalid_unicode
stderr)
AssertionError:
b"UnicodeEncodeError: 'utf-8' codec can't encode character '\\udcff' in position 7:
surrogates not allowed" not found in
b'Traceback (most recent call last):\n File "<string>", line 1,
in<module>\nUnicodeEncodeError: \'ascii\' codec can\'t encode character \'\\xff\' in position
0: ordinal not in range(128)\n[32513 refs]\n'
See
http://www.python.org/dev/buildbot/all/builders/sparc%20solaris10%20gcc%203.x/builds/1338/steps/test/logs/stdio
def test_sys_flags(self):
self.assertTrue(sys.flags)
Modified: python/branches/py3k/Lib/test/test_urllib.py
==============================================================================
--- python/branches/py3k/Lib/test/test_urllib.py (original)
+++ python/branches/py3k/Lib/test/test_urllib.py Sat Aug 7 12:09:35 2010
@@ -232,8 +232,12 @@
except: pass
def constructLocalFileUrl(self, filePath):
- return "file://%s" % urllib.request.pathname2url(
- os.path.abspath(filePath))
+ filePath = os.path.abspath(filePath)
+ try:
+ filePath.encode("utf8")
+ except UnicodeEncodeError:
+ raise unittest.SkipTest("filePath is not encodable to utf8")
+ return "file://%s" % urllib.request.pathname2url(filePath)
def createNewTempFile(self, data=b""):
"""Creates a new temporary file containing the specified data,
Modified: python/branches/py3k/Lib/test/test_urllib2.py
==============================================================================
--- python/branches/py3k/Lib/test/test_urllib2.py (original)
+++ python/branches/py3k/Lib/test/test_urllib2.py Sat Aug 7 12:09:35 2010
@@ -597,6 +597,10 @@
def sanepathname2url(path):
+ try:
+ path.encode("utf8")
+ except UnicodeEncodeError:
+ raise unittest.SkipTest("path is not encodable to utf8")
urlpath = urllib.request.pathname2url(path)
if os.name == "nt" and urlpath.startswith("///"):
urlpath = urlpath[2:]
Modified: python/branches/py3k/Lib/test/test_xml_etree.py
==============================================================================
--- python/branches/py3k/Lib/test/test_xml_etree.py (original)
+++ python/branches/py3k/Lib/test/test_xml_etree.py Sat Aug 7 12:09:35 2010
@@ -13,6 +13,7 @@
import sys
import cgi
+import unittest
from test import support
from test.support import findfile
@@ -20,6 +21,10 @@
from xml.etree import ElementTree as ET
SIMPLE_XMLFILE = findfile("simple.xml", subdir="xmltestdata")
+try:
+ SIMPLE_XMLFILE.encode("utf8")
+except UnicodeEncodeError:
+ raise unittest.SkipTest("filename is not encodable to utf8")
SIMPLE_NS_XMLFILE = findfile("simple-ns.xml", subdir="xmltestdata")
SAMPLE_XML = """\
_______________________________________________
Python-checkins mailing list
python-check...@python.org
http://mail.python.org/mailman/listinfo/python-checkins
Best Regards,
Ezio Melotti
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com