diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-04-01 13:53:53 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-04-01 13:53:53 (GMT) |
commit | 43b49593e700baeb7bf2be9dd1877eee5829e9e3 (patch) | |
tree | 705c361696a8971e8de3dfa62b8412c66f5647ff /Lib/test/test_linecache.py | |
parent | bd8c629eb54860df775f0072f4cf5fbd23dededb (diff) | |
download | cpython-43b49593e700baeb7bf2be9dd1877eee5829e9e3.zip cpython-43b49593e700baeb7bf2be9dd1877eee5829e9e3.tar.gz cpython-43b49593e700baeb7bf2be9dd1877eee5829e9e3.tar.bz2 |
Issue #23838: linecache now clears the cache and returns an empty result on
MemoryError.
Diffstat (limited to 'Lib/test/test_linecache.py')
-rw-r--r-- | Lib/test/test_linecache.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_linecache.py b/Lib/test/test_linecache.py index b5f80a4..6f7ecd1 100644 --- a/Lib/test/test_linecache.py +++ b/Lib/test/test_linecache.py @@ -124,6 +124,22 @@ class LineCacheTests(unittest.TestCase): self.assertEqual(line, getline(source_name, index + 1)) source_list.append(line) + def test_memoryerror(self): + lines = linecache.getlines(FILENAME) + self.assertTrue(lines) + def raise_memoryerror(*args, **kwargs): + raise MemoryError + with support.swap_attr(linecache, 'updatecache', raise_memoryerror): + lines2 = linecache.getlines(FILENAME) + self.assertEqual(lines2, lines) + + linecache.clearcache() + with support.swap_attr(linecache, 'updatecache', raise_memoryerror): + lines3 = linecache.getlines(FILENAME) + self.assertEqual(lines3, []) + self.assertEqual(linecache.getlines(FILENAME), lines) + + def test_main(): support.run_unittest(LineCacheTests) |