[Python-checkins] bpo-33744: Fix test_uu. (GH-7350) (GH-7353)

Serhiy Storchaka webhook-mailer at python.org
Sun Jun 3 11:22:58 EDT 2018


https://github.com/python/cpython/commit/da7f8ce21adc6cd0d7f86f5784a1d477891976f7
commit: da7f8ce21adc6cd0d7f86f5784a1d477891976f7
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: Serhiy Storchaka <storchaka at gmail.com>
date: 2018-06-03T18:22:54+03:00
summary:

bpo-33744: Fix test_uu. (GH-7350) (GH-7353)

Separate tests leaked files or were depended on files leaked in other tests.
(cherry picked from commit 027f95c736457f12c5713d9cf5b95ac335e583df)

Co-authored-by: Serhiy Storchaka <storchaka at gmail.com>

files:
M Lib/test/test_uu.py

diff --git a/Lib/test/test_uu.py b/Lib/test/test_uu.py
index ad2f2c59c108..735647898137 100644
--- a/Lib/test/test_uu.py
+++ b/Lib/test/test_uu.py
@@ -6,7 +6,7 @@
 import unittest
 from test import support
 
-import sys, os
+import sys
 import uu
 import io
 
@@ -142,113 +142,61 @@ def test_decode(self):
 
 class UUFileTest(unittest.TestCase):
 
-    def _kill(self, f):
-        # close and remove file
-        if f is None:
-            return
-        try:
-            f.close()
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
-            pass
-        try:
-            os.unlink(f.name)
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
-            pass
-
     def setUp(self):
         self.tmpin  = support.TESTFN + "i"
         self.tmpout = support.TESTFN + "o"
-
-    def tearDown(self):
-        del self.tmpin
-        del self.tmpout
+        self.addCleanup(support.unlink, self.tmpin)
+        self.addCleanup(support.unlink, self.tmpout)
 
     def test_encode(self):
-        fin = fout = None
-        try:
-            support.unlink(self.tmpin)
-            fin = open(self.tmpin, 'wb')
+        with open(self.tmpin, 'wb') as fin:
             fin.write(plaintext)
-            fin.close()
 
-            fin = open(self.tmpin, 'rb')
-            fout = open(self.tmpout, 'wb')
-            uu.encode(fin, fout, self.tmpin, mode=0o644)
-            fin.close()
-            fout.close()
+        with open(self.tmpin, 'rb') as fin:
+            with open(self.tmpout, 'wb') as fout:
+                uu.encode(fin, fout, self.tmpin, mode=0o644)
 
-            fout = open(self.tmpout, 'rb')
+        with open(self.tmpout, 'rb') as fout:
             s = fout.read()
-            fout.close()
-            self.assertEqual(s, encodedtextwrapped(0o644, self.tmpin))
+        self.assertEqual(s, encodedtextwrapped(0o644, self.tmpin))
 
-            # in_file and out_file as filenames
-            uu.encode(self.tmpin, self.tmpout, self.tmpin, mode=0o644)
-            fout = open(self.tmpout, 'rb')
+        # in_file and out_file as filenames
+        uu.encode(self.tmpin, self.tmpout, self.tmpin, mode=0o644)
+        with open(self.tmpout, 'rb') as fout:
             s = fout.read()
-            fout.close()
-            self.assertEqual(s, encodedtextwrapped(0o644, self.tmpin))
-
-        finally:
-            self._kill(fin)
-            self._kill(fout)
+        self.assertEqual(s, encodedtextwrapped(0o644, self.tmpin))
 
     def test_decode(self):
-        f = None
-        try:
-            support.unlink(self.tmpin)
-            f = open(self.tmpin, 'wb')
+        with open(self.tmpin, 'wb') as f:
             f.write(encodedtextwrapped(0o644, self.tmpout))
-            f.close()
 
-            f = open(self.tmpin, 'rb')
+        with open(self.tmpin, 'rb') as f:
             uu.decode(f)
-            f.close()
 
-            f = open(self.tmpout, 'rb')
+        with open(self.tmpout, 'rb') as f:
             s = f.read()
-            f.close()
-            self.assertEqual(s, plaintext)
-            # XXX is there an xp way to verify the mode?
-        finally:
-            self._kill(f)
+        self.assertEqual(s, plaintext)
+        # XXX is there an xp way to verify the mode?
 
     def test_decode_filename(self):
-        f = None
-        try:
-            support.unlink(self.tmpin)
-            f = open(self.tmpin, 'wb')
+        with open(self.tmpin, 'wb') as f:
             f.write(encodedtextwrapped(0o644, self.tmpout))
-            f.close()
 
-            uu.decode(self.tmpin)
+        uu.decode(self.tmpin)
 
-            f = open(self.tmpout, 'rb')
+        with open(self.tmpout, 'rb') as f:
             s = f.read()
-            f.close()
-            self.assertEqual(s, plaintext)
-        finally:
-            self._kill(f)
+        self.assertEqual(s, plaintext)
 
     def test_decodetwice(self):
         # Verify that decode() will refuse to overwrite an existing file
-        f = None
-        try:
-            f = io.BytesIO(encodedtextwrapped(0o644, self.tmpout))
-
-            f = open(self.tmpin, 'rb')
+        with open(self.tmpin, 'wb') as f:
+            f.write(encodedtextwrapped(0o644, self.tmpout))
+        with open(self.tmpin, 'rb') as f:
             uu.decode(f)
-            f.close()
 
-            f = open(self.tmpin, 'rb')
+        with open(self.tmpin, 'rb') as f:
             self.assertRaises(uu.Error, uu.decode, f)
-            f.close()
-        finally:
-            self._kill(f)
 
 def test_main():
     support.run_unittest(UUTest,



More information about the Python-checkins mailing list