Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_source_encoding.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| 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() |
