diff --git a/Lib/test/audiotests.py b/Lib/test/audiotests.py
index 3e18df1..9c4ce6c 100644
--- a/Lib/test/audiotests.py
+++ b/Lib/test/audiotests.py
@@ -145,18 +145,18 @@
                           self.sndfilenframes, self.comptype, self.compname)
 
     def test_close(self):
-        testfile = open(self.sndfilepath, 'rb')
-        f = self.f = self.module.open(testfile)
-        self.assertFalse(testfile.closed)
-        f.close()
-        self.assertEqual(testfile.closed, self.close_fd)
-        testfile = open(TESTFN, 'wb')
-        fout = self.module.open(testfile, 'wb')
-        self.assertFalse(testfile.closed)
-        with self.assertRaises(self.module.Error):
-            fout.close()
-        self.assertEqual(testfile.closed, self.close_fd)
-        fout.close() # do nothing
+        with open(self.sndfilepath, 'rb') as testfile:
+            f = self.f = self.module.open(testfile)
+            self.assertFalse(testfile.closed)
+            f.close()
+            self.assertEqual(testfile.closed, self.close_fd)
+        with open(TESTFN, 'wb') as testfile:
+            fout = self.fout = self.module.open(testfile, 'wb')
+            self.assertFalse(testfile.closed)
+            with self.assertRaises(self.module.Error):
+                fout.close()
+            self.assertEqual(testfile.closed, self.close_fd)
+            fout.close() # do nothing
 
     def test_read(self):
         framesize = self.nchannels * self.sampwidth
