annotate Lib/test/test_coding.py @ 58765:2ba7677bfa95 legacy-trunk

testCopysign was defined twice in test_math; combine the definitions
author Mark Dickinson <dickinsm@gmail.com>
date Sat, 06 Feb 2010 23:11:25 +0000
parents 4a50f0bdc806
children 9b4625700251
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35666
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
1
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
2 import test.test_support, unittest
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
3 import os
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
4
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
5 class CodingTest(unittest.TestCase):
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
6 def test_bad_coding(self):
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
7 module_name = 'bad_coding'
36078
1ff4790b7605 Fix Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
Neal Norwitz <nnorwitz@gmail.com>
parents: 35666
diff changeset
8 self.verify_bad_module(module_name)
1ff4790b7605 Fix Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
Neal Norwitz <nnorwitz@gmail.com>
parents: 35666
diff changeset
9
1ff4790b7605 Fix Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
Neal Norwitz <nnorwitz@gmail.com>
parents: 35666
diff changeset
10 def test_bad_coding2(self):
1ff4790b7605 Fix Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
Neal Norwitz <nnorwitz@gmail.com>
parents: 35666
diff changeset
11 module_name = 'bad_coding2'
1ff4790b7605 Fix Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
Neal Norwitz <nnorwitz@gmail.com>
parents: 35666
diff changeset
12 self.verify_bad_module(module_name)
1ff4790b7605 Fix Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
Neal Norwitz <nnorwitz@gmail.com>
parents: 35666
diff changeset
13
1ff4790b7605 Fix Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
Neal Norwitz <nnorwitz@gmail.com>
parents: 35666
diff changeset
14 def verify_bad_module(self, module_name):
35666
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
15 self.assertRaises(SyntaxError, __import__, 'test.' + module_name)
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
16
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
17 path = os.path.dirname(__file__)
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
18 filename = os.path.join(path, module_name + '.py')
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
19 fp = open(filename)
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
20 text = fp.read()
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
21 fp.close()
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
22 self.assertRaises(SyntaxError, compile, text, filename, 'exec')
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
23
54760
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
24 def test_error_from_string(self):
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
25 # See http://bugs.python.org/issue6289
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
26 input = u"# coding: ascii\n\N{SNOWMAN}".encode('utf-8')
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
27 try:
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
28 compile(input, "<string>", "exec")
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
29 except SyntaxError as e:
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
30 expected = "'ascii' codec can't decode byte 0xe2 in position 16: " \
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
31 "ordinal not in range(128)"
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
32 self.assertTrue(str(e).startswith(expected))
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
33 else:
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
34 self.fail("didn't raise")
4a50f0bdc806 don't mask encoding errors when decoding a string #6289
Benjamin Peterson <benjamin@python.org>
parents: 36078
diff changeset
35
35666
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
36 def test_main():
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
37 test.test_support.run_unittest(CodingTest)
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
38
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
39 if __name__ == "__main__":
b8e571e6de2e - Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff changeset
40 test_main()