12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- from __future__ import absolute_import, unicode_literals
- from case import Mock
- from celery.worker.heartbeat import Heart
- class MockDispatcher(object):
- heart = None
- next_iter = 0
- def __init__(self):
- self.sent = []
- self.on_enabled = set()
- self.on_disabled = set()
- self.enabled = True
- def send(self, msg, **_fields):
- self.sent.append(msg)
- if self.heart:
- if self.next_iter > 10:
- self.heart._shutdown.set()
- self.next_iter += 1
- class MockTimer(object):
- def call_repeatedly(self, secs, fun, args=(), kwargs={}):
- class entry(tuple):
- canceled = False
- def cancel(self):
- self.canceled = True
- return entry((secs, fun, args, kwargs))
- def cancel(self, entry):
- entry.cancel()
- class test_Heart:
- def test_start_stop(self):
- timer = MockTimer()
- eventer = MockDispatcher()
- h = Heart(timer, eventer, interval=1)
- h.start()
- assert h.tref
- h.stop()
- assert h.tref is None
- h.stop()
- def test_send_sends_signal(self):
- h = Heart(MockTimer(), MockDispatcher(), interval=1)
- h._send_sent_signal = None
- h._send('worker-heartbeat')
- h._send_sent_signal = Mock(name='send_sent_signal')
- h._send('worker')
- h._send_sent_signal.assert_called_with(sender=h)
- def test_start_when_disabled(self):
- timer = MockTimer()
- eventer = MockDispatcher()
- eventer.enabled = False
- h = Heart(timer, eventer)
- h.start()
- assert not h.tref
- def test_stop_when_disabled(self):
- timer = MockTimer()
- eventer = MockDispatcher()
- eventer.enabled = False
- h = Heart(timer, eventer)
- h.stop()
|