summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_locale.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_locale.py')
-rw-r--r--Lib/test/test_locale.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py
index 9187c9e..d8f7925 100644
--- a/Lib/test/test_locale.py
+++ b/Lib/test/test_locale.py
@@ -47,3 +47,38 @@ try:
locale.getpreferredencoding()
finally:
locale.setlocale(locale.LC_NUMERIC, oldlocale)
+
+
+# Test BSD Rune locale's bug for isctype functions.
+def teststrop(s, method, output):
+ if verbose:
+ print "%s.%s() =? %s ..." % (repr(s), method, repr(output)),
+ result = getattr(s, method)()
+ if result != output:
+ if verbose:
+ print "no"
+ print "%s.%s() == %s != %s" % (repr(s), method, repr(result),
+ repr(output))
+ elif verbose:
+ print "yes"
+
+try:
+ oldlocale = locale.setlocale(locale.LC_CTYPE)
+ locale.setlocale(locale.LC_CTYPE, 'en_US.UTF-8')
+except locale.Error:
+ pass
+else:
+ try:
+ teststrop('\x20', 'isspace', True)
+ teststrop('\xa0', 'isspace', False)
+ teststrop('\xa1', 'isspace', False)
+ teststrop('\xc0', 'isalpha', False)
+ teststrop('\xc0', 'isalnum', False)
+ teststrop('\xc0', 'isupper', False)
+ teststrop('\xc0', 'islower', False)
+ teststrop('\xec\xa0\xbc', 'split', ['\xec\xa0\xbc'])
+ teststrop('\xed\x95\xa0', 'strip', '\xed\x95\xa0')
+ teststrop('\xcc\x85', 'lower', '\xcc\x85')
+ teststrop('\xed\x95\xa0', 'upper', '\xed\x95\xa0')
+ finally:
+ locale.setlocale(locale.LC_CTYPE, oldlocale)