]> granicus.if.org Git - python/commitdiff
Try a different filename if the Latin-1 file name cannot
authorMartin v. Löwis <martin@v.loewis.de>
Sun, 7 Nov 2004 19:57:35 +0000 (19:57 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Sun, 7 Nov 2004 19:57:35 +0000 (19:57 +0000)
be represented in the file system. Fixes #989338.

Lib/test/test_unicode_file.py

index e3ab5e62ebb0093281ab3121d34c003fa73b310e..87f73acaf1bb92603f37d1b25b0691cb5b6e3a45 100644 (file)
@@ -14,6 +14,23 @@ except (UnicodeError, TypeError):
     # cannot be encoded in the file system encoding.
     raise TestSkipped("No Unicode filesystem semantics on this platform.")
 
+if TESTFN_ENCODED.decode(TESTFN_ENCODING) != TESTFN_UNICODE:
+    # The file system encoding does not support Latin-1
+    # (which test_support assumes), so try the file system
+    # encoding instead.
+    import sys
+    try:
+        TESTFN_UNICODE = unicode("@test-\xe0\xf2", sys.getfilesystemencoding())
+        TESTFN_ENCODED = TESTFN_UNICODE.encode(TESTFN_ENCODING)
+        if '?' in TESTFN_ENCODED:
+            # MBCS will not report the error properly
+            raise UnicodeError, "mbcs encoding problem"
+    except (UnicodeError, TypeError):
+        raise TestSkipped("Cannot find a suiteable filename.")
+
+if TESTFN_ENCODED.decode(TESTFN_ENCODING) != TESTFN_UNICODE:
+    raise TestSkipped("Cannot find a suitable filename.")
+
 def remove_if_exists(filename):
     if os.path.exists(filename):
         os.unlink(filename)