MCPcopy
hub / github.com/celery/celery / test_pool_grow

Method test_pool_grow

t/unit/worker/test_control.py:335–372  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

333 worker_state.active_requests.discard(r)
334
335 def test_pool_grow(self):
336
337 class MockPool:
338
339 def __init__(self, size=1):
340 self.size = size
341
342 def grow(self, n=1):
343 self.size += n
344
345 def shrink(self, n=1):
346 self.size -= n
347
348 @property
349 def num_processes(self):
350 return self.size
351
352 consumer = Consumer(self.app)
353 consumer.prefetch_multiplier = 8
354 consumer.qos = Mock(name='qos')
355 consumer.pool = MockPool(1)
356 panel = self.create_panel(consumer=consumer)
357
358 panel.handle('pool_grow')
359 assert consumer.pool.size == 2
360 consumer.qos.increment_eventually.assert_called_with(8)
361 assert consumer.initial_prefetch_count == 16
362 panel.handle('pool_shrink')
363 assert consumer.pool.size == 1
364 consumer.qos.decrement_eventually.assert_called_with(8)
365 assert consumer.initial_prefetch_count == 8
366
367 panel.state.consumer = Mock()
368 panel.state.consumer.controller = Mock()
369 r = panel.handle('pool_grow')
370 assert 'error' in r
371 r = panel.handle('pool_shrink')
372 assert 'error' in r
373
374 def test_add__cancel_consumer(self):
375

Callers

nothing calls this directly

Calls 4

create_panelMethod · 0.95
ConsumerClass · 0.70
MockPoolClass · 0.70
handleMethod · 0.45

Tested by

no test coverage detected