Commit e080a7a5 authored by Serhiy Storchaka's avatar Serhiy Storchaka

Fix tests for issue #11159.

parents f22bc647 1a4ed4ce
...@@ -14,6 +14,7 @@ from xml.sax.expatreader import create_parser ...@@ -14,6 +14,7 @@ from xml.sax.expatreader import create_parser
from xml.sax.handler import feature_namespaces from xml.sax.handler import feature_namespaces
from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl
from io import StringIO from io import StringIO
import os.path
import shutil import shutil
from test import support from test import support
from test.support import findfile, run_unittest from test.support import findfile, run_unittest
...@@ -27,6 +28,18 @@ try: ...@@ -27,6 +28,18 @@ try:
except UnicodeEncodeError: except UnicodeEncodeError:
raise unittest.SkipTest("filename is not encodable to utf8") 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/" ns_uri = "http://www.python.org/xml-ns/saxtest/"
class XmlTestBase(unittest.TestCase): class XmlTestBase(unittest.TestCase):
...@@ -483,6 +496,7 @@ class ExpatReaderTest(XmlTestBase): ...@@ -483,6 +496,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out) self.assertEqual(result.getvalue(), xml_test_out)
@requires_nonascii_filenames
def test_expat_file_nonascii(self): def test_expat_file_nonascii(self):
fname = support.TESTFN_UNICODE fname = support.TESTFN_UNICODE
shutil.copyfile(TEST_XMLFILE, fname) shutil.copyfile(TEST_XMLFILE, fname)
...@@ -636,6 +650,7 @@ class ExpatReaderTest(XmlTestBase): ...@@ -636,6 +650,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out) self.assertEqual(result.getvalue(), xml_test_out)
@requires_nonascii_filenames
def test_expat_inpsource_sysid_nonascii(self): def test_expat_inpsource_sysid_nonascii(self):
fname = support.TESTFN_UNICODE fname = support.TESTFN_UNICODE
shutil.copyfile(TEST_XMLFILE, fname) shutil.copyfile(TEST_XMLFILE, fname)
...@@ -724,6 +739,7 @@ class ExpatReaderTest(XmlTestBase): ...@@ -724,6 +739,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(parser.getSystemId(), TEST_XMLFILE) self.assertEqual(parser.getSystemId(), TEST_XMLFILE)
self.assertEqual(parser.getPublicId(), None) self.assertEqual(parser.getPublicId(), None)
@requires_nonascii_filenames
def test_expat_locator_withinfo_nonascii(self): def test_expat_locator_withinfo_nonascii(self):
fname = support.TESTFN_UNICODE fname = support.TESTFN_UNICODE
shutil.copyfile(TEST_XMLFILE, fname) shutil.copyfile(TEST_XMLFILE, fname)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment