Browse Source

[1828] Close open handles when done

Mukund Sivaraman 13 years ago
parent
commit
a9d5033669

+ 24 - 6
src/bin/bind10/tests/bind10_test.py.in

@@ -1055,22 +1055,33 @@ class TestPIDFile(unittest.TestCase):
         # dump PID to the file, and confirm the content is correct
         # dump PID to the file, and confirm the content is correct
         dump_pid(self.pid_file)
         dump_pid(self.pid_file)
         my_pid = os.getpid()
         my_pid = os.getpid()
-        self.assertEqual(my_pid, int(open(self.pid_file, "r").read()))
+        fd = open(self.pid_file, "r")
+        self.assertEqual(my_pid, int(fd.read()))
+        fd.close()
 
 
     def test_dump_pid(self):
     def test_dump_pid(self):
         self.check_pid_file()
         self.check_pid_file()
 
 
         # make sure any existing content will be removed
         # make sure any existing content will be removed
-        open(self.pid_file, "w").write('dummy data\n')
+        fd = open(self.pid_file, "w")
+        fd.write('dummy data\n')
+        fd.close()
         self.check_pid_file()
         self.check_pid_file()
 
 
     def test_unlink_pid_file_notexist(self):
     def test_unlink_pid_file_notexist(self):
         dummy_data = 'dummy_data\n'
         dummy_data = 'dummy_data\n'
-        open(self.pid_file, "w").write(dummy_data)
+
+        fd = open(self.pid_file, "w")
+        fd.write(dummy_data)
+        fd.close()
+
         unlink_pid_file("no_such_pid_file")
         unlink_pid_file("no_such_pid_file")
+
         # the file specified for unlink_pid_file doesn't exist,
         # the file specified for unlink_pid_file doesn't exist,
         # and the original content of the file should be intact.
         # and the original content of the file should be intact.
-        self.assertEqual(dummy_data, open(self.pid_file, "r").read())
+        fd = open(self.pid_file, "r")
+        self.assertEqual(dummy_data, fd.read())
+        fd.close()
 
 
     def test_dump_pid_with_none(self):
     def test_dump_pid_with_none(self):
         # Check the behavior of dump_pid() and unlink_pid_file() with None.
         # Check the behavior of dump_pid() and unlink_pid_file() with None.
@@ -1079,9 +1090,16 @@ class TestPIDFile(unittest.TestCase):
         self.assertFalse(os.path.exists(self.pid_file))
         self.assertFalse(os.path.exists(self.pid_file))
 
 
         dummy_data = 'dummy_data\n'
         dummy_data = 'dummy_data\n'
-        open(self.pid_file, "w").write(dummy_data)
+
+        fd = open(self.pid_file, "w")
+        fd.write(dummy_data)
+        fd.close()
+
         unlink_pid_file(None)
         unlink_pid_file(None)
-        self.assertEqual(dummy_data, open(self.pid_file, "r").read())
+
+        fd = open(self.pid_file, "r")
+        self.assertEqual(dummy_data, fd.read())
+        fd.close()
 
 
     def test_dump_pid_failure(self):
     def test_dump_pid_failure(self):
         # the attempt to open file will fail, which should result in exception.
         # the attempt to open file will fail, which should result in exception.

+ 1 - 0
src/bin/bindctl/tests/bindctl_test.py

@@ -458,6 +458,7 @@ class TestBindCmdInterpreter(unittest.TestCase):
         users = cmd._get_saved_user_info('./', csvfilename)
         users = cmd._get_saved_user_info('./', csvfilename)
         self.assertEqual([], users)
         self.assertEqual([], users)
         os.remove(csvfilename)
         os.remove(csvfilename)
+        sys.stdout.close()
         sys.stdout = old_stdout
         sys.stdout = old_stdout
 
 
 
 

+ 5 - 0
src/bin/cmdctl/tests/cmdctl_test.py

@@ -84,6 +84,7 @@ class TestSecureHTTPRequestHandler(unittest.TestCase):
         self.handler.rfile = open("check.tmp", 'w+b')
         self.handler.rfile = open("check.tmp", 'w+b')
 
 
     def tearDown(self):
     def tearDown(self):
+        sys.stdout.close()
         sys.stdout = self.old_stdout
         sys.stdout = self.old_stdout
         self.handler.rfile.close()
         self.handler.rfile.close()
         os.remove('check.tmp')
         os.remove('check.tmp')
@@ -306,6 +307,7 @@ class TestCommandControl(unittest.TestCase):
         self.cmdctl = MyCommandControl(None, True)
         self.cmdctl = MyCommandControl(None, True)
    
    
     def tearDown(self):
     def tearDown(self):
+        sys.stdout.close()
         sys.stdout = self.old_stdout
         sys.stdout = self.old_stdout
 
 
     def _check_config(self, cmdctl):
     def _check_config(self, cmdctl):
@@ -427,6 +429,9 @@ class TestSecureHTTPServer(unittest.TestCase):
                                          MyCommandControl, verbose=True)
                                          MyCommandControl, verbose=True)
 
 
     def tearDown(self):
     def tearDown(self):
+        # both sys.stdout and sys.stderr are the same, so closing one is
+        # sufficient
+        sys.stdout.close()
         sys.stdout = self.old_stdout
         sys.stdout = self.old_stdout
         sys.stderr = self.old_stderr
         sys.stderr = self.old_stderr
 
 

+ 2 - 1
src/bin/xfrin/tests/xfrin_test.py

@@ -2124,7 +2124,8 @@ class TestXfrin(unittest.TestCase):
         self.assertFalse(self.xfr._module_cc.stopped);
         self.assertFalse(self.xfr._module_cc.stopped);
         self.xfr.shutdown()
         self.xfr.shutdown()
         self.assertTrue(self.xfr._module_cc.stopped);
         self.assertTrue(self.xfr._module_cc.stopped);
-        sys.stderr= self.stderr_backup
+        sys.stderr.close()
+        sys.stderr = self.stderr_backup
 
 
     def _do_parse_zone_name_class(self):
     def _do_parse_zone_name_class(self):
         return self.xfr._parse_zone_name_and_class(self.args)
         return self.xfr._parse_zone_name_and_class(self.args)

+ 2 - 1
src/bin/zonemgr/tests/zonemgr_test.py

@@ -603,7 +603,8 @@ class TestZonemgrRefresh(unittest.TestCase):
                           config, self.cc_session)
                           config, self.cc_session)
 
 
     def tearDown(self):
     def tearDown(self):
-        sys.stderr= self.stderr_backup
+        sys.stderr.close()
+        sys.stderr = self.stderr_backup
 
 
 class MyZonemgr(Zonemgr):
 class MyZonemgr(Zonemgr):
 
 

+ 1 - 0
src/lib/dns/python/tests/testutil.py

@@ -37,6 +37,7 @@ def read_wire_data(filename):
                     cur_data = bytes.fromhex(line)
                     cur_data = bytes.fromhex(line)
                     data += cur_data
                     data += cur_data
 
 
+            file.close()
             return data
             return data
         except IOError:
         except IOError:
             pass
             pass

+ 6 - 0
src/lib/python/isc/bind10/tests/sockcreator_test.py

@@ -303,6 +303,7 @@ class WrapTests(unittest.TestCase):
 
 
         # Transfer the descriptor
         # Transfer the descriptor
         send_fd(t1.fileno(), p1.fileno())
         send_fd(t1.fileno(), p1.fileno())
+        p1.close()
         p1 = socket.fromfd(t2.read_fd(), socket.AF_UNIX, socket.SOCK_STREAM)
         p1 = socket.fromfd(t2.read_fd(), socket.AF_UNIX, socket.SOCK_STREAM)
 
 
         # Now, pass some data trough the socket
         # Now, pass some data trough the socket
@@ -318,6 +319,11 @@ class WrapTests(unittest.TestCase):
         data = t1.recv(1)
         data = t1.recv(1)
         self.assertEqual(b'C', data)
         self.assertEqual(b'C', data)
 
 
+        p1.close()
+        p2.close()
+        t1.close()
+        t2.close()
+
 if __name__ == '__main__':
 if __name__ == '__main__':
     isc.log.init("bind10") # FIXME Should this be needed?
     isc.log.init("bind10") # FIXME Should this be needed?
     isc.log.resetUnitTestRootLogger()
     isc.log.resetUnitTestRootLogger()

+ 4 - 0
src/lib/python/isc/config/tests/module_spec_test.py

@@ -48,6 +48,7 @@ class TestModuleSpec(unittest.TestCase):
     def test_open_file_obj(self):
     def test_open_file_obj(self):
         file1 = open(self.spec_file("spec1.spec"))
         file1 = open(self.spec_file("spec1.spec"))
         dd = isc.config.module_spec_from_file(file1)
         dd = isc.config.module_spec_from_file(file1)
+        file1.close()
         self.spec1(dd)
         self.spec1(dd)
 
 
     def test_open_bad_file_obj(self):
     def test_open_bad_file_obj(self):
@@ -91,6 +92,7 @@ class TestModuleSpec(unittest.TestCase):
         dd = self.read_spec_file(specfile_name);
         dd = self.read_spec_file(specfile_name);
         data_file = open(self.spec_file(datafile_name))
         data_file = open(self.spec_file(datafile_name))
         data_str = data_file.read()
         data_str = data_file.read()
+        data_file.close()
         data = isc.cc.data.parse_value_str(data_str)
         data = isc.cc.data.parse_value_str(data_str)
         return dd.validate_config(True, data)
         return dd.validate_config(True, data)
         
         
@@ -111,6 +113,7 @@ class TestModuleSpec(unittest.TestCase):
         dd = self.read_spec_file(specfile_name);
         dd = self.read_spec_file(specfile_name);
         data_file = open(self.spec_file(datafile_name))
         data_file = open(self.spec_file(datafile_name))
         data_str = data_file.read()
         data_str = data_file.read()
+        data_file.close()
         params = isc.cc.data.parse_value_str(data_str)
         params = isc.cc.data.parse_value_str(data_str)
         return dd.validate_command(cmd_name, params)
         return dd.validate_command(cmd_name, params)
 
 
@@ -133,6 +136,7 @@ class TestModuleSpec(unittest.TestCase):
             dd = self.read_spec_file(specfile_name);
             dd = self.read_spec_file(specfile_name);
             data_file = open(self.spec_file(datafile_name))
             data_file = open(self.spec_file(datafile_name))
             data_str = data_file.read()
             data_str = data_file.read()
+            data_file.close()
             data = isc.cc.data.parse_value_str(data_str)
             data = isc.cc.data.parse_value_str(data_str)
             return dd.validate_statistics(True, data, [])
             return dd.validate_statistics(True, data, [])
         self.assertFalse(self.read_spec_file("spec1.spec").validate_statistics(True, None, None));
         self.assertFalse(self.read_spec_file("spec1.spec").validate_statistics(True, None, None));