◐ Shell
clean mode source ↗

[3.9] bpo-25872: Add unit tests for linecache and threading (GH-25913) by iritkatriel · Pull Request #26211 · python/cpython

Expand Up @@ -238,5 +238,47 @@ def raise_memoryerror(*args, **kwargs): 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()