Exemplo n.º 1
0
 def test_start_when_disabled(self):
     timer = MockTimer()
     eventer = MockDispatcher()
     eventer.enabled = False
     h = Heart(timer, eventer)
     h.start()
     self.assertFalse(h.tref)
Exemplo n.º 2
0
 def test_stop(self):
     timer = MockTimer()
     eventer = MockDispatcher()
     h = Heart(timer, eventer, interval=1)
     h.start()
     self.assertTrue(h.tref)
     h.stop()
     self.assertIsNone(h.tref)
Exemplo n.º 3
0
    def test_time_raises_TypeError(self):
        from celery.worker import heartbeat

        def raises_TypeError(exc):
            raise TypeError("x")

        prev_time, heartbeat.time = heartbeat.time, raises_TypeError
        try:
            eventer = MockDispatcher()
            heart = Heart(eventer, interval=0.1)
            heart.run()
            self.assertIn("worker-online", eventer.sent)
            self.assertNotIn("worker-heartbeat", eventer.sent)

        finally:
            heartbeat.time = prev_time
Exemplo n.º 4
0
 def test_start_stop(self):
     timer = MockTimer()
     eventer = MockDispatcher()
     h = Heart(timer, eventer, interval=1)
     h.start()
     self.assertTrue(h.tref)
     h.stop()
     self.assertIsNone(h.tref)
     h.stop()
Exemplo n.º 5
0
 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()
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
    def test_run(self):
        eventer = MockDispatcher()

        heart = Heart(eventer, interval=1)
        heart._shutdown.set()
        heart.run()
        self.assertEqual(heart._state, "RUN")
        self.assertIn("worker-online", eventer.sent)
        self.assertIn("worker-heartbeat", eventer.sent)
        self.assertIn("worker-offline", eventer.sent)

        heart.stop()
        heart.stop()
        self.assertEqual(heart._state, "CLOSE")

        heart = Heart(eventer, interval=0.00001)
        heart._shutdown.set()
        for i in range(10):
            heart.run()
Exemplo n.º 8
0
 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()
Exemplo n.º 9
0
 def test_run_manages_cycle(self):
     eventer = MockDispatcher()
     heart = Heart(eventer, interval=0.1)
     eventer.heart = heart
     heart.run()
     self.assertEqual(heart._state, "RUN")
     self.assertTrue(heart._shutdown.isSet())
     heart._shutdown.clear()
     heart._stopped.clear()
     eventer.next_iter = 0
     heart.run()
Exemplo n.º 10
0
 def test_run_manages_cycle(self):
     eventer = MockDispatcher()
     heart = Heart(MockTimer(), eventer, interval=0.1)
     eventer.heart = heart
     heart.start()
     msecs, fun, args, kwargs = tref = heart.tref
     self.assertEqual(msecs, 0.1 * 1000)
     self.assertEqual(tref.fun, eventer.send)
     self.assertTrue(tref.args)
     self.assertTrue(tref.kwargs)
     heart.stop()
     self.assertTrue(tref.cancelled)
Exemplo n.º 11
0
    def test_run(self):
        eventer = MockDispatcher()

        heart = Heart(eventer, interval=1)
        heart._shutdown.set()
        heart.run()
        self.assertTrue(heart._state == "RUN")
        self.assertTrue("worker-online" in eventer.sent)
        self.assertTrue("worker-heartbeat" in eventer.sent)
        self.assertTrue("worker-offline" in eventer.sent)

        self.assertTrue(heart._stopped.isSet())

        heart.stop()
        heart.stop()
        self.assertTrue(heart._state == "CLOSE")

        heart = Heart(eventer, interval=0.00001)
        heart._shutdown.set()
        for i in range(10):
            heart.run()
Exemplo n.º 12
0
    def test_message_retries(self):
        timer = MockTimer()
        eventer = MockDispatcher()
        eventer.enabled = True
        h = Heart(timer, eventer, interval=1)

        h.start()
        assert eventer.sent[-1][0] == "worker-online"

        # Invoke a heartbeat
        h.tref[1](*h.tref[2], **h.tref[3])
        assert eventer.sent[-1][0] == "worker-heartbeat"
        assert eventer.sent[-1][1]["retry"]

        h.stop()
        assert eventer.sent[-1][0] == "worker-offline"
        assert not eventer.sent[-1][1]["retry"]
Exemplo n.º 13
0
 def test_stop_when_disabled(self):
     timer = MockTimer()
     eventer = MockDispatcher()
     eventer.enabled = False
     h = Heart(timer, eventer)
     h.stop()
Exemplo n.º 14
0
 def test_stop_when_disabled(self):
     timer = MockTimer()
     eventer = MockDispatcher()
     eventer.enabled = False
     h = Heart(timer, eventer)
     h.stop()
Exemplo n.º 15
0
 def test_run_stopped_is_set_even_if_send_breaks(self):
     eventer = MockDispatcherRaising()
     heart = Heart(eventer, interval=1)
     heart._shutdown.set()
     self.assertRaises(Exception, heart.run)
     self.assertTrue(heart._stopped.isSet())
Exemplo n.º 16
0
 def test_run_exception(self):
     eventer = MockDispatcherRaising()
     heart = Heart(eventer, interval=1)
     heart._shutdown.set()
     self.assertRaises(Exception, heart.run)