diff options
| author | goodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2006-04-12 01:12:31 +0000 |
|---|---|---|
| committer | goodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2006-04-12 01:12:31 +0000 |
| commit | a0aa463fcfdcddc03c692c145fa8e67f13c4e4a8 (patch) | |
| tree | 026368e82c032f9bafd33e3b518b62934d07c2e3 /test | |
| parent | 7a245c587fb5b6dfaaa8ac48db0b536b67fc3465 (diff) | |
| download | docutils-a0aa463fcfdcddc03c692c145fa8e67f13c4e4a8.tar.gz | |
Added code to determine the input encoding from data: encoding declarations or the presence of byte order marks (UTF-8 & UTF-16).
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@4506 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'test')
| -rwxr-xr-x | test/test_io.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/test_io.py b/test/test_io.py index b82911e44..c8388ab99 100755 --- a/test/test_io.py +++ b/test/test_io.py @@ -27,6 +27,42 @@ class InputTests(unittest.TestCase): # Assert BOMs are still there. self.assertEquals(input.read(), u'\ufeff foo \ufeff bar') + def test_coding_slug(self): + input = io.StringInput(source="""\ +.. -*- coding: ascii -*- +data +blah +""") + data = input.read() + self.assertEquals(input.successful_encoding, 'ascii') + input = io.StringInput(source="""\ +#! python +# -*- coding: ascii -*- +print "hello world" +""") + data = input.read() + self.assertEquals(input.successful_encoding, 'ascii') + input = io.StringInput(source="""\ +#! python +# extraneous comment; prevents coding slug from being read +# -*- coding: ascii -*- +print "hello world" +""") + data = input.read() + self.assertNotEquals(input.successful_encoding, 'ascii') + + def test_bom_detection(self): + source = u'\ufeffdata\nblah\n' + input = io.StringInput(source=source.encode('utf-16-be')) + data = input.read() + self.assertEquals(input.successful_encoding, 'utf-16-be') + input = io.StringInput(source=source.encode('utf-16-le')) + data = input.read() + self.assertEquals(input.successful_encoding, 'utf-16-le') + input = io.StringInput(source=source.encode('utf-8')) + data = input.read() + self.assertEquals(input.successful_encoding, 'utf-8') + if __name__ == '__main__': unittest.main() |
