summaryrefslogtreecommitdiff
path: root/test/test_command_line.py
diff options
context:
space:
mode:
authormilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2011-11-23 22:01:02 +0000
committermilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2011-11-23 22:01:02 +0000
commit36b69d7a0a1ca44ecdd14f0e1663252cb58bc60b (patch)
tree1a41556a24d2358fc8fc617a8b95327769cc424b /test/test_command_line.py
parent14bba24f4826fff7d24bba13af2c0f6007032cd9 (diff)
downloaddocutils-36b69d7a0a1ca44ecdd14f0e1663252cb58bc60b.tar.gz
fix encodings discrpancy in Windows
test_command_line now determines the encoding of the standard input the same way as docutils.core.process_command_line() git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@7225 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'test/test_command_line.py')
-rw-r--r--test/test_command_line.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/test/test_command_line.py b/test/test_command_line.py
index d5eab5928..f46e68fbd 100644
--- a/test/test_command_line.py
+++ b/test/test_command_line.py
@@ -9,31 +9,41 @@ Test module for the command line.
"""
import unittest
-import sys
-import DocutilsTestSupport # must be imported before docutils
+import sys, codecs
+import DocutilsTestSupport # must be imported before docutils
import docutils.core
+# determine/guess the encoding of the standard input:
try:
import locale # module missing in Jython
- locale_encoding = locale.getdefaultlocale()[1]
+ locale_encoding = locale.getlocale()[1] or locale.getdefaultlocale()[1]
except ImportError:
locale_encoding = None
+stdin_encoding = sys.stdin.encoding or locale_encoding or 'ascii'
+try:
+ codecs.lookup(stdin_encoding)
+except LookupError:
+ stdin_encoding = 'ascii'
+
+
class CommandLineEncodingTests(unittest.TestCase):
def test_sys_argv_decoding(self):
- if locale_encoding in (None, 'ascii'): # cannot test
+ if stdin_encoding == 'ascii': # cannot test
return
sys.argv.append('--source-url=test.txt') # pure ASCII argument
if sys.version_info < (3,0):
- sys.argv.append(u'--title=Dornröschen'.encode(locale_encoding))
+ sys.argv.append(u'--title=Dornröschen'.encode(stdin_encoding))
else:
sys.argv.append(u'--title=Dornröschen')
publisher = docutils.core.Publisher()
publisher.process_command_line()
self.assertEqual(publisher.settings.source_url, 'test.txt')
self.assertEqual(publisher.settings.title, u'Dornröschen')
- sys.argv.pop()
+ sys.argv.pop() # --title
+ sys.argv.pop() # --source-url
+
if __name__ == '__main__':
unittest.main()