annotate Lib/test/test_linecache.py @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents 47bc3509f76b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
1 """ Tests for the linecache module """
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
2
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
3 import linecache
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
4 import unittest
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
5 import os.path
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
6 from test import test_support as support
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
7
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
8
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
9 FILENAME = linecache.__file__
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
10 INVALID_NAME = '!@$)(!@#_1'
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
11 EMPTY = ''
70165
47bc3509f76b Issue #11614: Fix test_linecache, cjkencodings_test.py doesn't exist anymore
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68256
diff changeset
12 TESTS = 'inspect_fodder inspect_fodder2 mapping_tests'
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
13 TESTS = TESTS.split()
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
14 TEST_PATH = os.path.dirname(support.__file__)
55340
f311395487c9 split unittest.py into a package
Benjamin Peterson <benjamin@python.org>
parents: 54350
diff changeset
15 MODULES = "linecache abc".split()
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
16 MODULE_PATH = os.path.dirname(FILENAME)
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
17
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
18 SOURCE_1 = '''
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
19 " Docstring "
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
20
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
21 def function():
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
22 return result
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
23
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
24 '''
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
25
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
26 SOURCE_2 = '''
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
27 def f():
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
28 return 1 + 1
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
29
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
30 a = f()
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
31
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
32 '''
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
33
61829
e20eae3b5fe4 Merged revisions 81432 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 57562
diff changeset
34 SOURCE_3 = '''
e20eae3b5fe4 Merged revisions 81432 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 57562
diff changeset
35 def f():
e20eae3b5fe4 Merged revisions 81432 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 57562
diff changeset
36 return 3''' # No ending newline
e20eae3b5fe4 Merged revisions 81432 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 57562
diff changeset
37
e20eae3b5fe4 Merged revisions 81432 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 57562
diff changeset
38
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
39 class LineCacheTests(unittest.TestCase):
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
40
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
41 def test_getline(self):
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
42 getline = linecache.getline
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
43
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
44 # Bad values for line number should return an empty string
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
45 self.assertEqual(getline(FILENAME, 2**15), EMPTY)
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
46 self.assertEqual(getline(FILENAME, -1), EMPTY)
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
47
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
48 # Float values currently raise TypeError, should it?
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
49 self.assertRaises(TypeError, getline, FILENAME, 1.1)
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
50
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
51 # Bad filenames should return an empty string
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
52 self.assertEqual(getline(EMPTY, 1), EMPTY)
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
53 self.assertEqual(getline(INVALID_NAME, 1), EMPTY)
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
54
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
55 # Check whether lines correspond to those from file iteration
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
56 for entry in TESTS:
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
57 filename = os.path.join(TEST_PATH, entry) + '.py'
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
58 for index, line in enumerate(open(filename)):
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
59 self.assertEqual(line, getline(filename, index + 1))
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
60
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
61 # Check module loading
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
62 for entry in MODULES:
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
63 filename = os.path.join(MODULE_PATH, entry) + '.py'
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
64 for index, line in enumerate(open(filename)):
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
65 self.assertEqual(line, getline(filename, index + 1))
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
66
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
67 # Check that bogus data isn't returned (issue #1309567)
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
68 empty = linecache.getlines('a/b/c/__init__.py')
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
69 self.assertEqual(empty, [])
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
70
61829
e20eae3b5fe4 Merged revisions 81432 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 57562
diff changeset
71 def test_no_ending_newline(self):
61822
f05d2996776e ensure the last line has a trailing newline #8782
Benjamin Peterson <benjamin@python.org>
parents: 61819
diff changeset
72 self.addCleanup(support.unlink, support.TESTFN)
f05d2996776e ensure the last line has a trailing newline #8782
Benjamin Peterson <benjamin@python.org>
parents: 61819
diff changeset
73 with open(support.TESTFN, "w") as fp:
f05d2996776e ensure the last line has a trailing newline #8782
Benjamin Peterson <benjamin@python.org>
parents: 61819
diff changeset
74 fp.write(SOURCE_3)
f05d2996776e ensure the last line has a trailing newline #8782
Benjamin Peterson <benjamin@python.org>
parents: 61819
diff changeset
75 lines = linecache.getlines(support.TESTFN)
f05d2996776e ensure the last line has a trailing newline #8782
Benjamin Peterson <benjamin@python.org>
parents: 61819
diff changeset
76 self.assertEqual(lines, ["\n", "def f():\n", " return 3\n"])
61829
e20eae3b5fe4 Merged revisions 81432 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 57562
diff changeset
77
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
78 def test_clearcache(self):
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
79 cached = []
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
80 for entry in TESTS:
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
81 filename = os.path.join(TEST_PATH, entry) + '.py'
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
82 cached.append(filename)
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
83 linecache.getline(filename, 1)
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
84
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
85 # Are all files cached?
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
86 cached_empty = [fn for fn in cached if fn not in linecache.cache]
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
87 self.assertEqual(cached_empty, [])
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
88
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
89 # Can we clear the cache?
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
90 linecache.clearcache()
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
91 cached_empty = [fn for fn in cached if fn in linecache.cache]
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
92 self.assertEqual(cached_empty, [])
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
93
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
94 def test_checkcache(self):
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
95 getline = linecache.getline
61818
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
96 # Create a source file and cache its contents
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
97 source_name = support.TESTFN + '.py'
61819
b14f39d0f20a fix name
Benjamin Peterson <benjamin@python.org>
parents: 61818
diff changeset
98 self.addCleanup(support.unlink, source_name)
61818
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
99 with open(source_name, 'w') as source:
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
100 source.write(SOURCE_1)
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
101 getline(source_name, 1)
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
102
61818
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
103 # Keep a copy of the old contents
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
104 source_list = []
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
105 with open(source_name) as source:
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
106 for index, line in enumerate(source):
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
107 self.assertEqual(line, getline(source_name, index + 1))
61818
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
108 source_list.append(line)
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
109
61818
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
110 with open(source_name, 'w') as source:
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
111 source.write(SOURCE_2)
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
112
61818
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
113 # Try to update a bogus cache entry
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
114 linecache.checkcache('dummy')
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
115
61818
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
116 # Check that the cache matches the old contents
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
117 for index, line in enumerate(source_list):
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
118 self.assertEqual(line, getline(source_name, index + 1))
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
119
61818
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
120 # Update the cache and check whether it matches the new source file
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
121 linecache.checkcache(source_name)
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
122 with open(source_name) as source:
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
123 for index, line in enumerate(source):
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61822
diff changeset
124 self.assertEqual(line, getline(source_name, index + 1))
61818
6985c6b9d978 use addCleanup
Benjamin Peterson <benjamin@python.org>
parents: 60701
diff changeset
125 source_list.append(line)
54350
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
126
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
127 def test_main():
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
128 support.run_unittest(LineCacheTests)
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
129
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
130 if __name__ == "__main__":
acc07866b233 Merged revisions 72319-72320,72467,72661,72675-72679,72703,72708,72710,72712,72801-72802,72820,72822,72824,72826-72828,72830 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff changeset
131 test_main()