def test_start(self): with patch('celery.contrib.migrate.eventloop') as evloop: app = Mock() filter = Mock(name='filter') conn = Connection('memory://') evloop.side_effect = StopFiltering() app.amqp.queues = {'foo': Queue('foo'), 'bar': Queue('bar')} consumer = app.amqp.TaskConsumer.return_value = Mock(name='consum') consumer.queues = list(app.amqp.queues.values()) consumer.channel = conn.default_channel consumer.__enter__ = Mock(name='consumer.__enter__') consumer.__exit__ = Mock(name='consumer.__exit__') consumer.callbacks = [] def register_callback(x): consumer.callbacks.append(x) consumer.register_callback = register_callback start_filter(app, conn, filter, queues='foo,bar', ack_messages=True) body = {'task': 'add', 'id': 'id'} for callback in consumer.callbacks: callback(body, Message(body)) consumer.callbacks[:] = [] cb = Mock(name='callback=') start_filter(app, conn, filter, tasks='add,mul', callback=cb) for callback in consumer.callbacks: callback(body, Message(body)) self.assertTrue(cb.called) on_declare_queue = Mock() start_filter(app, conn, filter, tasks='add,mul', queues='foo', on_declare_queue=on_declare_queue) self.assertTrue(on_declare_queue.called) start_filter(app, conn, filter, queues=['foo', 'bar']) consumer.callbacks[:] = [] state = State() start_filter(app, conn, filter, tasks='add,mul', callback=cb, state=state, limit=1) stop_filtering_raised = False for callback in consumer.callbacks: try: callback(body, Message(body)) except StopFiltering: stop_filtering_raised = True self.assertTrue(state.count) self.assertTrue(stop_filtering_raised)
def test_repr(self): x = State() self.assertTrue(repr(x)) x.filtered = 'foo' self.assertTrue(repr(x))
def test_strtotal(self): x = State() self.assertEqual(x.strtotal, '?') x.total_apx = 100 self.assertEqual(x.strtotal, '100')
def test_filter_status(self, stdout, stderr): filter_status(State(), {'id': '1', 'task': 'add'}, Mock()) self.assertTrue(stdout.getvalue())
def test_strtotal(self): x = State() self.assertEqual(x.strtotal, "?") x.total_apx = 100 self.assertEqual(x.strtotal, "100")
def test_strtotal(self): x = State() self.assertEqual(x.strtotal, u'?') x.total_apx = 100 self.assertEqual(x.strtotal, u'100')
def test_repr(self): x = State() assert repr(x) x.filtered = "foo" assert repr(x)
def test_strtotal(self): x = State() assert x.strtotal == "?" x.total_apx = 100 assert x.strtotal == "100"
def test_repr(self): x = State() assert repr(x) x.filtered = 'foo' assert repr(x)
def test_strtotal(self): x = State() assert x.strtotal == '?' x.total_apx = 100 assert x.strtotal == '100'
def test_filter_status(): with mock.stdouts() as (stdout, stderr): filter_status(State(), {'id': '1', 'task': 'add'}, Mock()) assert stdout.getvalue()
def test_strtotal(self): x = State() self.assertEqual(x.strtotal, u"?") x.total_apx = 100 self.assertEqual(x.strtotal, u"100")