diff options
author | Irit Katriel <iritkatriel@yahoo.com> | 2021-05-18 14:25:38 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-18 14:25:38 (GMT) |
commit | c05d8a6b67785450b1fec0d30fe26d5478bc4f0b (patch) | |
tree | 706102afa87d8729b4f06f538fd9daa17309f85c /Lib/test/test_linecache.py | |
parent | 049c4125f8a2b482c6129db68463f58e20c31526 (diff) | |
download | cpython-c05d8a6b67785450b1fec0d30fe26d5478bc4f0b.zip cpython-c05d8a6b67785450b1fec0d30fe26d5478bc4f0b.tar.gz cpython-c05d8a6b67785450b1fec0d30fe26d5478bc4f0b.tar.bz2 |
bpo-25872: Add unit tests for linecache and threading (GH-25913) (GH-26211)
(cherry picked from commit 115dea9e2602b96b63390f00cc880e90c433efa2)
Co-authored-by: uniocto <serit142sa33go@gmail.com>
Diffstat (limited to 'Lib/test/test_linecache.py')
-rw-r--r-- | Lib/test/test_linecache.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Lib/test/test_linecache.py b/Lib/test/test_linecache.py index 375d9c4..f569116 100644 --- a/Lib/test/test_linecache.py +++ b/Lib/test/test_linecache.py @@ -238,5 +238,47 @@ class LineCacheTests(unittest.TestCase): self.assertEqual(linecache.getlines(FILENAME), lines) +class LineCacheInvalidationTests(unittest.TestCase): + def setUp(self): + super().setUp() + linecache.clearcache() + self.deleted_file = support.TESTFN + '.1' + self.modified_file = support.TESTFN + '.2' + self.unchanged_file = support.TESTFN + '.3' + + for fname in (self.deleted_file, + self.modified_file, + self.unchanged_file): + self.addCleanup(support.unlink, fname) + with open(fname, 'w', encoding='utf-8') as source: + source.write(f'print("I am {fname}")') + + self.assertNotIn(fname, linecache.cache) + linecache.getlines(fname) + self.assertIn(fname, linecache.cache) + + os.remove(self.deleted_file) + with open(self.modified_file, 'w', encoding='utf-8') as source: + source.write('print("was modified")') + + def test_checkcache_for_deleted_file(self): + linecache.checkcache(self.deleted_file) + self.assertNotIn(self.deleted_file, linecache.cache) + self.assertIn(self.modified_file, linecache.cache) + self.assertIn(self.unchanged_file, linecache.cache) + + def test_checkcache_for_modified_file(self): + linecache.checkcache(self.modified_file) + self.assertIn(self.deleted_file, linecache.cache) + self.assertNotIn(self.modified_file, linecache.cache) + self.assertIn(self.unchanged_file, linecache.cache) + + def test_checkcache_with_no_parameter(self): + linecache.checkcache() + self.assertNotIn(self.deleted_file, linecache.cache) + self.assertNotIn(self.modified_file, linecache.cache) + self.assertIn(self.unchanged_file, linecache.cache) + + if __name__ == "__main__": unittest.main() |