Browse Source

sys.version_info comparison fail

Ask Solem 14 years ago
parent
commit
cf4e737269
2 changed files with 18 additions and 18 deletions
  1. 6 7
      celery/apps/worker.py
  2. 12 11
      celery/tests/test_bin/test_celeryd.py

+ 6 - 7
celery/apps/worker.py

@@ -305,15 +305,14 @@ def install_worker_restart_handler(worker):
 
 
 def install_cry_handler(logger):
-    if sys.version_info <= (2, 4):
-        # 2.4 does not have sys._current_frames
-        return
+    # 2.4 does not have sys._current_frames
+    if sys.version_info > (2, 5):
 
-    def cry_handler(signum, frame):
-        """Signal handler logging the stacktrace of all active threads."""
-        logger.error("\n" + cry())
+        def cry_handler(signum, frame):
+            """Signal handler logging the stacktrace of all active threads."""
+            logger.error("\n" + cry())
 
-    platforms.install_signal_handler("SIGUSR1", cry_handler)
+        platforms.install_signal_handler("SIGUSR1", cry_handler)
 
 
 def install_HUP_not_supported_handler(worker):

+ 12 - 11
celery/tests/test_bin/test_celeryd.py

@@ -443,19 +443,20 @@ class test_signal_handlers(unittest.TestCase):
         self.assertTrue(worker.stopped)
 
     def test_worker_cry_handler(self):
-        if sys.version_info <= (2, 4):
+        if sys.version_info > (2, 5):
+
+            class Logger(object):
+                _errors = []
+
+                def error(self, msg, *args, **kwargs):
+                    self._errors.append(msg)
+            logger = Logger()
+            handlers = self.psig(cd.install_cry_handler, logger)
+            self.assertIsNone(handlers["SIGUSR1"]("SIGUSR1", object()))
+            self.assertTrue(Logger._errors)
+        else:
             raise SkipTest("Needs Python 2.5 or later")
 
-        class Logger(object):
-            _errors = []
-
-            def error(self, msg, *args, **kwargs):
-                self._errors.append(msg)
-        logger = Logger()
-        handlers = self.psig(cd.install_cry_handler, logger)
-        self.assertIsNone(handlers["SIGUSR1"]("SIGUSR1", object()))
-        self.assertTrue(Logger._errors)
-
     @disable_stdouts
     def test_worker_term_handler_only_stop_MainProcess(self):
         process = current_process()