Browse Source

Fixes pool_restart tests

Ask Solem 12 years ago
parent
commit
4e0f9079cc
1 changed files with 47 additions and 33 deletions
  1. 47 33
      celery/tests/worker/test_control.py

+ 47 - 33
celery/tests/worker/test_control.py

@@ -425,10 +425,17 @@ class test_ControlPanel(Case):
         _import = panel.app.loader.import_from_cwd = Mock()
         _reload = Mock()
 
-        panel.handle('pool_restart', {'reloader': _reload})
-        self.assertTrue(consumer.controller.pool.restart.called)
-        self.assertFalse(_reload.called)
-        self.assertFalse(_import.called)
+        with self.assertRaises(ValueError):
+            panel.handle('pool_restart', {'reloader': _reload})
+
+        current_app.conf.CELERYD_POOL_RESTARTS = True
+        try:
+            panel.handle('pool_restart', {'reloader': _reload})
+            self.assertTrue(consumer.controller.pool.restart.called)
+            self.assertFalse(_reload.called)
+            self.assertFalse(_import.called)
+        finally:
+            current_app.conf.CELERYD_POOL_RESTARTS = False
 
     def test_pool_restart_import_modules(self):
         consumer = Consumer()
@@ -439,15 +446,18 @@ class test_ControlPanel(Case):
         _import = consumer.controller.app.loader.import_from_cwd = Mock()
         _reload = Mock()
 
-        panel.handle('pool_restart', {'modules': ['foo', 'bar'],
-                                      'reloader': _reload})
-
-        self.assertTrue(consumer.controller.pool.restart.called)
-        self.assertFalse(_reload.called)
-        self.assertEqual(
-            [(('foo',), {}), (('bar',), {})],
-            _import.call_args_list,
-        )
+        current_app.conf.CELERYD_POOL_RESTARTS = True
+        try:
+            panel.handle('pool_restart', {'modules': ['foo', 'bar'],
+                                          'reloader': _reload})
+            self.assertTrue(consumer.controller.pool.restart.called)
+            self.assertFalse(_reload.called)
+            self.assertEqual(
+                [(('foo',), {}), (('bar',), {})],
+                _import.call_args_list,
+            )
+        finally:
+            current_app.conf.CELERYD_POOL_RESTARTS = False
 
     def test_pool_restart_relaod_modules(self):
         consumer = Consumer()
@@ -458,23 +468,27 @@ class test_ControlPanel(Case):
         _import = panel.app.loader.import_from_cwd = Mock()
         _reload = Mock()
 
-        with patch.dict(sys.modules, {'foo': None}):
-            panel.handle('pool_restart', {'modules': ['foo'],
-                                          'reload': False,
-                                          'reloader': _reload})
-
-            self.assertTrue(consumer.controller.pool.restart.called)
-            self.assertFalse(_reload.called)
-            self.assertFalse(_import.called)
-
-            _import.reset_mock()
-            _reload.reset_mock()
-            consumer.controller.pool.restart.reset_mock()
-
-            panel.handle('pool_restart', {'modules': ['foo'],
-                                          'reload': True,
-                                          'reloader': _reload})
-
-            self.assertTrue(consumer.controller.pool.restart.called)
-            self.assertTrue(_reload.called)
-            self.assertFalse(_import.called)
+        current_app.conf.CELERYD_POOL_RESTARTS = True
+        try:
+            with patch.dict(sys.modules, {'foo': None}):
+                panel.handle('pool_restart', {'modules': ['foo'],
+                                              'reload': False,
+                                              'reloader': _reload})
+
+                self.assertTrue(consumer.controller.pool.restart.called)
+                self.assertFalse(_reload.called)
+                self.assertFalse(_import.called)
+
+                _import.reset_mock()
+                _reload.reset_mock()
+                consumer.controller.pool.restart.reset_mock()
+
+                panel.handle('pool_restart', {'modules': ['foo'],
+                                              'reload': True,
+                                              'reloader': _reload})
+
+                self.assertTrue(consumer.controller.pool.restart.called)
+                self.assertTrue(_reload.called)
+                self.assertFalse(_import.called)
+        finally:
+            current_app.conf.CELERYD_POOL_RESTARTS = False