예제 #1
0
 def test_info_without_event_loop(self):
     parent = Mock(name='parent')
     parent.autoscale = True
     parent.max_concurrency = '10'
     parent.min_concurrency = '2'
     parent.use_eventloop = False
     w = autoscale.WorkerComponent(parent)
     w.create(parent)
     info = w.info(parent)
     assert 'autoscaler' in info
     assert parent.autoscaler_cls().info.called
예제 #2
0
    def test_register_with_event_loop(self):
        parent = Mock(name='parent')
        parent.autoscale = True
        parent.consumer.on_task_message = set()
        w = autoscale.WorkerComponent(parent)
        assert parent.autoscaler is None
        assert w.enabled

        hub = Mock(name='hub')
        w.create(parent)
        w.register_with_event_loop(parent, hub)
        assert (parent.autoscaler.maybe_scale in
                parent.consumer.on_task_message)
        hub.call_repeatedly.assert_called_with(
            parent.autoscaler.keepalive, parent.autoscaler.maybe_scale,
        )

        parent.hub = hub
        hub.on_init = []
        w.instantiate = Mock()
        w.register_with_event_loop(parent, Mock(name='loop'))
        assert parent.consumer.on_task_message