Просмотр исходного кода

Fix last ResourceWarning and remove __del__ workaround

Mike Naberezny 10 лет назад
Родитель
Сommit
88dc3edd2d

+ 0 - 9
supervisor/loggers.py

@@ -144,15 +144,6 @@ class FileHandler(Handler):
         self.baseFilename = filename
         self.mode = mode
 
-    def __del__(self):
-        # TODO try to remove this __del__ entirely, it's here to suppress
-        # ResourceWarnings when running the test suite on Python 3
-        if self.stream:
-            try:
-                self.close()
-            except OSError:
-                pass
-
     def reopen(self):
         self.close()
         self.stream = open(self.baseFilename, self.mode)

+ 3 - 3
supervisor/supervisord.py

@@ -351,11 +351,11 @@ def main(args=None, test=False):
             profile('go(options)', globals(), locals(), sort_order, callers)
         else:
             go(options)
+        options.close_httpservers()
+        options.close_logger()
+        first = False
         if test or (options.mood < SupervisorStates.RESTARTING):
             break
-        options.close_httpservers() # pragma: no cover
-        options.close_logger() # pragma: no cover
-        first = False # pragma: no cover
 
 def go(options): # pragma: no cover
     d = Supervisor(options)

+ 0 - 6
supervisor/tests/test_loggers.py

@@ -135,12 +135,6 @@ class FileHandlerTests(HandlerTests, unittest.TestCase):
         self.assertEqual(handler.stream.name, self.filename)
         handler.close()
 
-    def test_ctor_sets_stream_to_None_if_open_raises(self):
-        not_a_file = os.path.dirname(self.filename)
-        self.assertTrue(os.path.isdir(not_a_file))
-        self.assertRaises(IOError, self._makeOne, not_a_file)
-        # FileHandler.__del__() shouldn't raise AttributeError
-
     def test_close(self):
         handler = self._makeOne(self.filename)
         handler.stream.close()

+ 2 - 0
supervisor/tests/test_supervisord.py

@@ -29,6 +29,7 @@ class EntryPointTests(unittest.TestCase):
             os.path.abspath(os.path.dirname(__file__)), 'fixtures',
             'donothing.conf')
         new_stdout = StringIO()
+        new_stdout.fileno = lambda: 1
         old_stdout = sys.stdout
         try:
             tempdir = tempfile.mkdtemp()
@@ -50,6 +51,7 @@ class EntryPointTests(unittest.TestCase):
                 os.path.abspath(os.path.dirname(__file__)), 'fixtures',
                 'donothing.conf')
             new_stdout = StringIO()
+            new_stdout.fileno = lambda: 1
             old_stdout = sys.stdout
             try:
                 tempdir = tempfile.mkdtemp()