diff options
author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2011-11-23 22:01:02 +0000 |
---|---|---|
committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2011-11-23 22:01:02 +0000 |
commit | 36b69d7a0a1ca44ecdd14f0e1663252cb58bc60b (patch) | |
tree | 1a41556a24d2358fc8fc617a8b95327769cc424b /test/test_command_line.py | |
parent | 14bba24f4826fff7d24bba13af2c0f6007032cd9 (diff) | |
download | docutils-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.py | 22 |
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() |