Browse Source

Tests passing

Ask Solem 11 years ago
parent
commit
9d42993e5d

+ 7 - 7
celery/tests/worker/test_autoreload.py

@@ -123,21 +123,21 @@ class test_KQueueMonitor(Case):
 
     def test_register_with_event_loop(self):
         x = KQueueMonitor(['a', 'b'])
-        hub = Mock()
-        x.add_events = Mock()
+        hub = Mock(name='hub')
+        x.add_events = Mock(name='add_events()')
         x.register_with_event_loop(hub)
-        x.add_events.assert_called_with(hub.poller)
+        x.add_events.assert_called_with(x._kq)
         self.assertEqual(
-            hub.poller.on_file_change,
+            x._kq.on_file_change,
             x.handle_event,
         )
 
     def test_on_event_loop_close(self):
         x = KQueueMonitor(['a', 'b'])
         x.close = Mock()
-        hub = Mock()
-        x.on_event_loop_close(hub)
-        x.close.assert_called_with(hub.poller)
+        x._kq = Mock(name='_kq')
+        x.on_event_loop_close(Mock(name='hub'))
+        x.close.assert_called_with(x._kq)
 
     def test_handle_event(self):
         x = KQueueMonitor(['a', 'b'])

+ 16 - 0
celery/tests/worker/test_control.py

@@ -515,8 +515,13 @@ class test_ControlPanel(AppCase):
     def test_pool_restart(self):
         consumer = Consumer(self.app)
         consumer.controller = _WC(app=self.app)
+        consumer.controller.consumer = consumer
         consumer.controller.pool.restart = Mock()
+        consumer.reset_rate_limits = Mock(name='reset_rate_limits()')
+        consumer.update_strategies = Mock(name='update_strategies()')
+        consumer.event_dispatcher = Mock(name='evd')
         panel = self.create_panel(consumer=consumer)
+        assert panel.state.consumer.controller.consumer is consumer
         panel.app = self.app
         _import = panel.app.loader.import_from_cwd = Mock()
         _reload = Mock()
@@ -527,15 +532,21 @@ class test_ControlPanel(AppCase):
         self.app.conf.CELERYD_POOL_RESTARTS = True
         panel.handle('pool_restart', {'reloader': _reload})
         self.assertTrue(consumer.controller.pool.restart.called)
+        consumer.reset_rate_limits.assert_called_with()
+        consumer.update_strategies.assert_called_with()
         self.assertFalse(_reload.called)
         self.assertFalse(_import.called)
 
     def test_pool_restart_import_modules(self):
         consumer = Consumer(self.app)
         consumer.controller = _WC(app=self.app)
+        consumer.controller.consumer = consumer
         consumer.controller.pool.restart = Mock()
+        consumer.reset_rate_limits = Mock(name='reset_rate_limits()')
+        consumer.update_strategies = Mock(name='update_strategies()')
         panel = self.create_panel(consumer=consumer)
         panel.app = self.app
+        assert panel.state.consumer.controller.consumer is consumer
         _import = consumer.controller.app.loader.import_from_cwd = Mock()
         _reload = Mock()
 
@@ -544,6 +555,8 @@ class test_ControlPanel(AppCase):
                                       'reloader': _reload})
 
         self.assertTrue(consumer.controller.pool.restart.called)
+        consumer.reset_rate_limits.assert_called_with()
+        consumer.update_strategies.assert_called_with()
         self.assertFalse(_reload.called)
         self.assertItemsEqual(
             [call('bar'), call('foo')],
@@ -553,7 +566,10 @@ class test_ControlPanel(AppCase):
     def test_pool_restart_reload_modules(self):
         consumer = Consumer(self.app)
         consumer.controller = _WC(app=self.app)
+        consumer.controller.consumer = consumer
         consumer.controller.pool.restart = Mock()
+        consumer.reset_rate_limits = Mock(name='reset_rate_limits()')
+        consumer.update_strategies = Mock(name='update_strategies()')
         panel = self.create_panel(consumer=consumer)
         panel.app = self.app
         _import = panel.app.loader.import_from_cwd = Mock()

+ 3 - 2
celery/worker/__init__.py

@@ -281,8 +281,9 @@ class WorkController(object):
                 logger.debug('reloading module %s', module)
                 reload_from_cwd(sys.modules[module], reloader)
 
-        self.consumer.update_strategies()
-        self.consumer.reset_rate_limits()
+        if self.consumer:
+            self.consumer.update_strategies()
+            self.consumer.reset_rate_limits()
         self.pool.restart()
 
     def info(self):