Try to fix test_warnings on Windows
authorVictor Stinner <victor.stinner@gmail.com>
Sat, 19 Mar 2016 01:51:45 +0000 (02:51 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Sat, 19 Mar 2016 01:51:45 +0000 (02:51 +0100)
Issue #26567.

Lib/test/test_warnings/__init__.py

index a1b3dba7017e194f62399f3fe91b0d777b56f1c5..be80b05402adbdc1a278573b8ccc71d6265b5779 100644 (file)
@@ -4,7 +4,6 @@ import os
 from io import StringIO
 import re
 import sys
-import tempfile
 import textwrap
 import unittest
 from test import support
@@ -774,8 +773,10 @@ class PyWarningsDisplayTests(WarningsDisplayTests, unittest.TestCase):
     module = py_warnings
 
     def test_tracemalloc(self):
-        with tempfile.NamedTemporaryFile("w", suffix=".py") as tmpfile:
-            tmpfile.write(textwrap.dedent("""
+        self.addCleanup(support.unlink, support.TESTFN)
+
+        with open(support.TESTFN, 'w') as fp:
+            fp.write(textwrap.dedent("""
                 def func():
                     f = open(__file__)
                     # Emit ResourceWarning
@@ -783,12 +784,12 @@ class PyWarningsDisplayTests(WarningsDisplayTests, unittest.TestCase):
 
                 func()
             """))
-            tmpfile.flush()
-            fname = tmpfile.name
-            res = assert_python_ok('-Wd', '-X', 'tracemalloc=2', fname)
+
+        res = assert_python_ok('-Wd', '-X', 'tracemalloc=2', support.TESTFN)
+
         stderr = res.err.decode('ascii', 'replace')
         stderr = re.sub('<.*>', '<...>', stderr)
-        expected = textwrap.dedent(f'''
+        expected = textwrap.dedent('''
             {fname}:5: ResourceWarning: unclosed file <...>
               f = None
             Object allocated at (most recent call first):
@@ -796,7 +797,8 @@ class PyWarningsDisplayTests(WarningsDisplayTests, unittest.TestCase):
                 f = open(__file__)
               File "{fname}", lineno 7
                 func()
-        ''').strip()
+        ''')
+        expected = expected.format(fname=support.TESTFN).strip()
         self.assertEqual(stderr, expected)