Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_source_encoding.py @ 86127:a3d09c19bb93
merge with 3.3
| author | Georg Brandl <georg@python.org> |
|---|---|
| date | Sun, 06 Oct 2013 19:24:00 +0200 |
| parents | 29e7f6a2dc0d |
| children |
| rev | line source |
|---|---|
|
51721
33d5d7daa8c7
Merged revisions 69576,69579-69580,69589,69619-69620,69633,69703-69704,69728-69730 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51634
diff
changeset
|
1 # -*- coding: koi8-r -*- |
|
51634
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
2 |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
3 import unittest |
|
59671
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
4 from test.support import TESTFN, unlink, unload |
|
84113
464e8fd7300d
Issue #18048: Merge test_pep263.py and test_coding.py into test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
diff
changeset
|
5 import importlib |
|
464e8fd7300d
Issue #18048: Merge test_pep263.py and test_coding.py into test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
diff
changeset
|
6 import os |
|
464e8fd7300d
Issue #18048: Merge test_pep263.py and test_coding.py into test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
diff
changeset
|
7 import sys |
|
51634
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
8 |
|
84113
464e8fd7300d
Issue #18048: Merge test_pep263.py and test_coding.py into test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
diff
changeset
|
9 class SourceEncodingTest(unittest.TestCase): |
|
51634
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
10 |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
11 def test_pep263(self): |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
12 self.assertEqual( |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
13 "ðÉÔÏÎ".encode("utf-8"), |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
14 b'\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd' |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
15 ) |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
16 self.assertEqual( |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
17 "\ð".encode("utf-8"), |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
18 b'\\\xd0\x9f' |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
19 ) |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
20 |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
21 def test_compilestring(self): |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
22 # see #1882 |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
23 c = compile(b"\n# coding: utf-8\nu = '\xc3\xb3'\n", "dummy", "exec") |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
24 d = {} |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
25 exec(c, d) |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
26 self.assertEqual(d['u'], '\xf3') |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
27 |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
28 def test_issue2301(self): |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
29 try: |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
30 compile(b"# coding: cp932\nprint '\x94\x4e'", "dummy", "exec") |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
31 except SyntaxError as v: |
|
66310
9fe76c26ea9f
#9424: Replace deprecated assert* methods in the Python test suite.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
59288
diff
changeset
|
32 self.assertEqual(v.text, "print '\u5e74'\n") |
|
51634
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
33 else: |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
34 self.fail() |
|
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
35 |
|
51956
8fe2988cf550
ignore the coding cookie in compile(), exec(), and eval() if the source is a string #4626
Benjamin Peterson <benjamin@python.org>
parents:
51721
diff
changeset
|
36 def test_issue4626(self): |
|
8fe2988cf550
ignore the coding cookie in compile(), exec(), and eval() if the source is a string #4626
Benjamin Peterson <benjamin@python.org>
parents:
51721
diff
changeset
|
37 c = compile("# coding=latin-1\n\u00c6 = '\u00c6'", "dummy", "exec") |
|
8fe2988cf550
ignore the coding cookie in compile(), exec(), and eval() if the source is a string #4626
Benjamin Peterson <benjamin@python.org>
parents:
51721
diff
changeset
|
38 d = {} |
|
8fe2988cf550
ignore the coding cookie in compile(), exec(), and eval() if the source is a string #4626
Benjamin Peterson <benjamin@python.org>
parents:
51721
diff
changeset
|
39 exec(c, d) |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
59289
diff
changeset
|
40 self.assertEqual(d['\xc6'], '\xc6') |
|
51956
8fe2988cf550
ignore the coding cookie in compile(), exec(), and eval() if the source is a string #4626
Benjamin Peterson <benjamin@python.org>
parents:
51721
diff
changeset
|
41 |
|
56955
f32dc84a876c
Merged revisions 75928 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
42 def test_issue3297(self): |
|
f32dc84a876c
Merged revisions 75928 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
43 c = compile("a, b = '\U0001010F', '\\U0001010F'", "dummy", "exec") |
|
f32dc84a876c
Merged revisions 75928 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
44 d = {} |
|
f32dc84a876c
Merged revisions 75928 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
45 exec(c, d) |
|
f32dc84a876c
Merged revisions 75928 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
46 self.assertEqual(d['a'], d['b']) |
|
f32dc84a876c
Merged revisions 75928 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
47 self.assertEqual(len(d['a']), len(d['b'])) |
|
f32dc84a876c
Merged revisions 75928 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
48 self.assertEqual(ascii(d['a']), ascii(d['b'])) |
|
f32dc84a876c
Merged revisions 75928 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
49 |
|
59289
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
50 def test_issue7820(self): |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
51 # Ensure that check_bom() restores all bytes in the right order if |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
52 # check_bom() fails in pydebug mode: a buffer starts with the first |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
53 # byte of a valid BOM, but next bytes are different |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
54 |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
55 # one byte in common with the UTF-16-LE BOM |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
56 self.assertRaises(SyntaxError, eval, b'\xff\x20') |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
57 |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
58 # two bytes in common with the UTF-8 BOM |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
59 self.assertRaises(SyntaxError, eval, b'\xef\xbb\x20') |
|
6537761c3101
Merged revisions 78608 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
56955
diff
changeset
|
60 |
|
84063
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
61 def test_error_message(self): |
|
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
62 compile(b'# -*- coding: iso-8859-15 -*-\n', 'dummy', 'exec') |
|
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
63 compile(b'\xef\xbb\xbf\n', 'dummy', 'exec') |
|
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
64 compile(b'\xef\xbb\xbf# -*- coding: utf-8 -*-\n', 'dummy', 'exec') |
|
84164
4f7c25ab2ed2
Stop using the deprecated unittest.TestCase.assertRaisesRegexp()
Brett Cannon <brett@python.org>
parents:
84113
diff
changeset
|
65 with self.assertRaisesRegex(SyntaxError, 'fake'): |
|
84063
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
66 compile(b'# -*- coding: fake -*-\n', 'dummy', 'exec') |
|
84164
4f7c25ab2ed2
Stop using the deprecated unittest.TestCase.assertRaisesRegexp()
Brett Cannon <brett@python.org>
parents:
84113
diff
changeset
|
67 with self.assertRaisesRegex(SyntaxError, 'iso-8859-15'): |
|
84063
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
68 compile(b'\xef\xbb\xbf# -*- coding: iso-8859-15 -*-\n', |
|
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
69 'dummy', 'exec') |
|
84164
4f7c25ab2ed2
Stop using the deprecated unittest.TestCase.assertRaisesRegexp()
Brett Cannon <brett@python.org>
parents:
84113
diff
changeset
|
70 with self.assertRaisesRegex(SyntaxError, 'BOM'): |
|
84063
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
71 compile(b'\xef\xbb\xbf# -*- coding: iso-8859-15 -*-\n', |
|
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
72 'dummy', 'exec') |
|
84164
4f7c25ab2ed2
Stop using the deprecated unittest.TestCase.assertRaisesRegexp()
Brett Cannon <brett@python.org>
parents:
84113
diff
changeset
|
73 with self.assertRaisesRegex(SyntaxError, 'fake'): |
|
84063
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
74 compile(b'\xef\xbb\xbf# -*- coding: fake -*-\n', 'dummy', 'exec') |
|
84164
4f7c25ab2ed2
Stop using the deprecated unittest.TestCase.assertRaisesRegexp()
Brett Cannon <brett@python.org>
parents:
84113
diff
changeset
|
75 with self.assertRaisesRegex(SyntaxError, 'BOM'): |
|
84063
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
76 compile(b'\xef\xbb\xbf# -*- coding: fake -*-\n', 'dummy', 'exec') |
|
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
77 |
|
35666
b8e571e6de2e
- Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff
changeset
|
78 def test_bad_coding(self): |
|
b8e571e6de2e
- Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff
changeset
|
79 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
|
80 self.verify_bad_module(module_name) |
|
84063
15aa786b723b
Issue #18038: SyntaxError raised during compilation sources with illegal
Serhiy Storchaka <storchaka@gmail.com>
parents:
68257
diff
changeset
|
81 |
|
36078
1ff4790b7605
Fix Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
Neal Norwitz <nnorwitz@gmail.com>
parents:
35666
diff
changeset
|
82 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
|
83 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
|
84 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
|
85 |
|
1ff4790b7605
Fix Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
Neal Norwitz <nnorwitz@gmail.com>
parents:
35666
diff
changeset
|
86 def verify_bad_module(self, module_name): |
|
35666
b8e571e6de2e
- Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff
changeset
|
87 self.assertRaises(SyntaxError, __import__, 'test.' + module_name) |
|
b8e571e6de2e
- Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff
changeset
|
88 |
|
b8e571e6de2e
- Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff
changeset
|
89 path = os.path.dirname(__file__) |
|
b8e571e6de2e
- Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff
changeset
|
90 filename = os.path.join(path, module_name + '.py') |
|
59671
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
91 with open(filename, "rb") as fp: |
|
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
92 bytes = fp.read() |
|
51956
8fe2988cf550
ignore the coding cookie in compile(), exec(), and eval() if the source is a string #4626
Benjamin Peterson <benjamin@python.org>
parents:
51721
diff
changeset
|
93 self.assertRaises(SyntaxError, compile, bytes, filename, 'exec') |
|
35666
b8e571e6de2e
- Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff
changeset
|
94 |
|
42548
e0f62286a9a4
Fix problem when exec'ing a string with a coding
Neal Norwitz <nnorwitz@gmail.com>
parents:
36078
diff
changeset
|
95 def test_exec_valid_coding(self): |
|
e0f62286a9a4
Fix problem when exec'ing a string with a coding
Neal Norwitz <nnorwitz@gmail.com>
parents:
36078
diff
changeset
|
96 d = {} |
|
84218
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
97 exec(b'# coding: cp949\na = "\xaa\xa7"\n', d) |
|
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
98 self.assertEqual(d['a'], '\u3047') |
|
51634
969378ea4c77
Merged revisions 69617 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
99 |
|
43873
1739869cbc6e
Correction for issue1134: all source files with a coding spec, except latin-1
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42574
diff
changeset
|
100 def test_file_parse(self): |
|
1739869cbc6e
Correction for issue1134: all source files with a coding spec, except latin-1
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42574
diff
changeset
|
101 # issue1134: all encodings outside latin-1 and utf-8 fail on |
|
1739869cbc6e
Correction for issue1134: all source files with a coding spec, except latin-1
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42574
diff
changeset
|
102 # multiline strings and long lines (>512 columns) |
|
59671
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
103 unload(TESTFN) |
|
84218
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
104 filename = TESTFN + ".py" |
|
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
105 f = open(filename, "w", encoding="cp1252") |
|
59671
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
106 sys.path.insert(0, os.curdir) |
|
43873
1739869cbc6e
Correction for issue1134: all source files with a coding spec, except latin-1
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42574
diff
changeset
|
107 try: |
|
84218
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
108 with f: |
|
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
109 f.write("# -*- coding: cp1252 -*-\n") |
|
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
110 f.write("'''A short string\n") |
|
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
111 f.write("'''\n") |
|
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
112 f.write("'A very long string %s'\n" % ("X" * 1000)) |
|
43873
1739869cbc6e
Correction for issue1134: all source files with a coding spec, except latin-1
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42574
diff
changeset
|
113 |
|
76306
02f251c41a17
Fix an import race condition.
Brett Cannon <brett@python.org>
parents:
59671
diff
changeset
|
114 importlib.invalidate_caches() |
|
43880
4a6a7aea57f4
Correct a failing test when test_import is run after test_coding:
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
43873
diff
changeset
|
115 __import__(TESTFN) |
|
43873
1739869cbc6e
Correction for issue1134: all source files with a coding spec, except latin-1
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42574
diff
changeset
|
116 finally: |
|
84218
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
117 del sys.path[0] |
|
59671
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
118 unlink(filename) |
|
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
119 unlink(filename + "c") |
|
84218
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
120 unlink(filename + "o") |
|
59671
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
121 unload(TESTFN) |
|
43873
1739869cbc6e
Correction for issue1134: all source files with a coding spec, except latin-1
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42574
diff
changeset
|
122 |
|
54917
f94c09aa4444
Merged revisions 73623-73624 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
123 def test_error_from_string(self): |
|
f94c09aa4444
Merged revisions 73623-73624 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
124 # See http://bugs.python.org/issue6289 |
|
f94c09aa4444
Merged revisions 73623-73624 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
125 input = "# coding: ascii\n\N{SNOWMAN}".encode('utf-8') |
|
59671
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
126 with self.assertRaises(SyntaxError) as c: |
|
54917
f94c09aa4444
Merged revisions 73623-73624 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
127 compile(input, "<string>", "exec") |
|
59671
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
128 expected = "'ascii' codec can't decode byte 0xe2 in position 16: " \ |
|
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
129 "ordinal not in range(128)" |
|
84218
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
130 self.assertTrue(c.exception.args[0].startswith(expected), |
|
959f4ce4d590
Issue #18202: Fix minor bugs and cleanup test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
parents:
84164
diff
changeset
|
131 msg=c.exception.args[0]) |
|
59671
80dc4d131d85
Merged revisions 79030-79032 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
54917
diff
changeset
|
132 |
|
54917
f94c09aa4444
Merged revisions 73623-73624 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51956
diff
changeset
|
133 |
|
35666
b8e571e6de2e
- Fix segfault with invalid coding.
Neal Norwitz <nnorwitz@gmail.com>
parents:
diff
changeset
|
134 if __name__ == "__main__": |
|
84113
464e8fd7300d
Issue #18048: Merge test_pep263.py and test_coding.py into test_source_encoding.py.
Serhiy Storchaka <storchaka@gmail.com>
diff
changeset
|
135 unittest.main() |
