From 36b69d7a0a1ca44ecdd14f0e1663252cb58bc60b Mon Sep 17 00:00:00 2001 From: milde Date: Wed, 23 Nov 2011 22:01:02 +0000 Subject: 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 --- test/test_command_line.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'test/test_command_line.py') 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() -- cgit v1.2.1