예제 #1
0
    def test_get_many(self):
        for is_dict in True, False:
            self.b.mget_returns_dict = is_dict
            ids = {uuid(): i for i in range(10)}
            for id, i in items(ids):
                self.b.mark_as_done(id, i)
            it = self.b.get_many(list(ids), interval=0.01)
            for i, (got_id, got_state) in enumerate(it):
                assert got_state['result'] == ids[got_id]
            assert i == 9
            assert list(self.b.get_many(list(ids), interval=0.01))

            self.b._cache.clear()
            callback = Mock(name='callback')
            it = self.b.get_many(
                list(ids),
                on_message=callback,
                interval=0.05
            )
            for i, (got_id, got_state) in enumerate(it):
                assert got_state['result'] == ids[got_id]
            assert i == 9
            assert list(
                self.b.get_many(list(ids), interval=0.01)
            )
            callback.assert_has_calls([
                call(ANY) for id in ids
            ])
예제 #2
0
파일: test_timer2.py 프로젝트: Scalr/celery
 def test_on_tick(self, sleep):
     on_tick = Mock(name='on_tick')
     t = timer2.Timer(on_tick=on_tick)
     ne = t._next_entry = Mock(name='_next_entry')
     ne.return_value = 3.33
     ne.on_nth_call_do(t._is_shutdown.set, 3)
     t.run()
     sleep.assert_called_with(3.33)
     on_tick.assert_has_calls([call(3.33), call(3.33), call(3.33)])
예제 #3
0
 def test_join_native(self):
     backend = SimpleBackend()
     results = [self.app.AsyncResult(uuid(), backend=backend) for i in range(10)]
     ts = self.app.GroupResult(uuid(), results)
     ts.app.backend = backend
     backend.ids = [result.id for result in results]
     res = ts.join_native()
     assert res == list(range(10))
     callback = Mock(name="callback")
     assert not ts.join_native(callback=callback)
     callback.assert_has_calls([call(r.id, i) for i, r in enumerate(ts.results)])