]> granicus.if.org Git - python/commitdiff
Merged revisions 76659 via svnmerge from
authorR. David Murray <rdmurray@bitdance.com>
Fri, 4 Dec 2009 00:01:31 +0000 (00:01 +0000)
committerR. David Murray <rdmurray@bitdance.com>
Fri, 4 Dec 2009 00:01:31 +0000 (00:01 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76659 | r.david.murray | 2009-12-03 18:57:59 -0500 (Thu, 03 Dec 2009) | 4 lines

  Issue 7431: use TESTFN in test_linecache instead of trying to create a
  file in the Lib/test directory, which might be read-only for the
  user running the tests.
........

Lib/test/test_linecache.py
Misc/NEWS

index 2894bb412baaaa40610e8f9d7de2d9d0aa7c2548..18206d2be5036c6910af2bc36aec038526421f41 100644 (file)
@@ -83,44 +83,40 @@ class LineCacheTests(unittest.TestCase):
         getline = linecache.getline
         try:
             # Create a source file and cache its contents
-            source_name = os.path.join(TEST_PATH, 'linecache_test.py')
-            source = open(source_name, 'w')
-            source.write(SOURCE_1)
-            source.close()
-            getline(source_name, 1)
-
-            # Keep a copy of the old contents
-            source_list = []
-            source = open(source_name)
-            for index, line in enumerate(source):
-                self.assertEquals(line, getline(source_name, index + 1))
-                source_list.append(line)
-            source.close()
-
-            source = open(source_name, 'w')
-            source.write(SOURCE_2)
-            source.close()
-
-            # Try to update a bogus cache entry
-            linecache.checkcache('dummy')
-
-            # Check that the cache matches the old contents
-            for index, line in enumerate(source_list):
-                self.assertEquals(line, getline(source_name, index + 1))
-
-            # Update the cache and check whether it matches the new source file
-            linecache.checkcache(source_name)
-            source = open(source_name)
-            for index, line in enumerate(source):
-                self.assertEquals(line, getline(source_name, index + 1))
-                source_list.append(line)
-            source.close()
+            source_name = support.TESTFN + '.py'
+            with open(source_name, 'w') as source:
+                source.write(SOURCE_1)
+                source.close()
+                getline(source_name, 1)
+
+                # Keep a copy of the old contents
+                source_list = []
+                source = open(source_name)
+                for index, line in enumerate(source):
+                    self.assertEquals(line, getline(source_name, index + 1))
+                    source_list.append(line)
+                source.close()
 
-        finally:
-            try:
+                source = open(source_name, 'w')
+                source.write(SOURCE_2)
                 source.close()
-            finally:
-                support.unlink(source_name)
+
+                # Try to update a bogus cache entry
+                linecache.checkcache('dummy')
+
+                # Check that the cache matches the old contents
+                for index, line in enumerate(source_list):
+                    self.assertEquals(line, getline(source_name, index + 1))
+
+                # Update the cache and check whether it matches the new source file
+                linecache.checkcache(source_name)
+                source = open(source_name)
+                for index, line in enumerate(source):
+                    self.assertEquals(line, getline(source_name, index + 1))
+                    source_list.append(line)
+
+        finally:
+            support.unlink(source_name)
 
 def test_main():
     support.run_unittest(LineCacheTests)
index cd1d157fd6ca327c253d6199cb112e9fdda7b430..0d5521d945f47280ec2826836c1720f4079d0788 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -101,6 +101,10 @@ Build
 Tests
 -----
 
+- Issue #7431: use TESTFN in test_linecache instead of trying to create a 
+  file in the Lib/test directory, which might be read-only for the
+  user running the tests.
+
 - Issue #7324: add a sanity check to regrtest argument parsing to
   catch the case of an option with no handler.