]> granicus.if.org Git - python/commitdiff
Fix tests for issue #11159.
authorSerhiy Storchaka <storchaka@gmail.com>
Sat, 2 Feb 2013 10:17:05 +0000 (12:17 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Sat, 2 Feb 2013 10:17:05 +0000 (12:17 +0200)
Lib/test/test_sax.py

index 7b989e86c02c3cb702e6f289e1ce6065cdfa2508..a96f0a8237fe9880a3177f0cc829f60f318cd099 100644 (file)
@@ -14,6 +14,7 @@ from xml.sax.expatreader import create_parser
 from xml.sax.handler import feature_namespaces
 from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl
 from io import StringIO
+import os.path
 import shutil
 from test import support
 from test.support import findfile, run_unittest
@@ -27,6 +28,18 @@ try:
 except UnicodeEncodeError:
     raise unittest.SkipTest("filename is not encodable to utf8")
 
+supports_nonascii_filenames = True
+if not os.path.supports_unicode_filenames:
+    try:
+        support.TESTFN_UNICODE.encode(support.TESTFN_ENCODING)
+    except (UnicodeError, TypeError):
+        # Either the file system encoding is None, or the file name
+        # cannot be encoded in the file system encoding.
+        supports_nonascii_filenames = False
+requires_nonascii_filenames = unittest.skipUnless(
+        supports_nonascii_filenames,
+        'Requires non-ascii filenames support')
+
 ns_uri = "http://www.python.org/xml-ns/saxtest/"
 
 class XmlTestBase(unittest.TestCase):
@@ -483,6 +496,7 @@ class ExpatReaderTest(XmlTestBase):
 
         self.assertEqual(result.getvalue(), xml_test_out)
 
+    @requires_nonascii_filenames
     def test_expat_file_nonascii(self):
         fname = support.TESTFN_UNICODE
         shutil.copyfile(TEST_XMLFILE, fname)
@@ -636,6 +650,7 @@ class ExpatReaderTest(XmlTestBase):
 
         self.assertEqual(result.getvalue(), xml_test_out)
 
+    @requires_nonascii_filenames
     def test_expat_inpsource_sysid_nonascii(self):
         fname = support.TESTFN_UNICODE
         shutil.copyfile(TEST_XMLFILE, fname)
@@ -724,6 +739,7 @@ class ExpatReaderTest(XmlTestBase):
         self.assertEqual(parser.getSystemId(), TEST_XMLFILE)
         self.assertEqual(parser.getPublicId(), None)
 
+    @requires_nonascii_filenames
     def test_expat_locator_withinfo_nonascii(self):
         fname = support.TESTFN_UNICODE
         shutil.copyfile(TEST_XMLFILE, fname)