from __future__ import absolute_import
from celery.utils.text import (
indent,
ensure_2lines,
abbr,
truncate,
abbrtask,
pretty,
)
from celery.tests.case import AppCase, Case
RANDTEXT = """\
The quick brown
fox jumps
over the
lazy dog\
"""
RANDTEXT_RES = """\
The quick brown
fox jumps
over the
lazy dog\
"""
QUEUES = {
'queue1': {
'exchange': 'exchange1',
'exchange_type': 'type1',
'routing_key': 'bind1',
},
'queue2': {
'exchange': 'exchange2',
'exchange_type': 'type2',
'routing_key': 'bind2',
},
}
QUEUE_FORMAT1 = '.> queue1 exchange=exchange1(type1) key=bind1'
QUEUE_FORMAT2 = '.> queue2 exchange=exchange2(type2) key=bind2'
class test_Info(AppCase):
def test_textindent(self):
self.assertEqual(indent(RANDTEXT, 4), RANDTEXT_RES)
def test_format_queues(self):
self.app.amqp.queues = self.app.amqp.Queues(QUEUES)
self.assertEqual(sorted(self.app.amqp.queues.format().split('\n')),
sorted([QUEUE_FORMAT1, QUEUE_FORMAT2]))
def test_ensure_2lines(self):
self.assertEqual(
len(ensure_2lines('foo\nbar\nbaz\n').splitlines()), 3,
)
self.assertEqual(
len(ensure_2lines('foo\nbar').splitlines()), 2,
)
class test_utils(Case):
def test_truncate_text(self):
self.assertEqual(truncate('ABCDEFGHI', 3), 'ABC...')
self.assertEqual(truncate('ABCDEFGHI', 10), 'ABCDEFGHI')
def test_abbr(self):
self.assertEqual(abbr(None, 3), '???')
self.assertEqual(abbr('ABCDEFGHI', 6), 'ABC...')
self.assertEqual(abbr('ABCDEFGHI', 20), 'ABCDEFGHI')
self.assertEqual(abbr('ABCDEFGHI', 6, None), 'ABCDEF')
def test_abbrtask(self):
self.assertEqual(abbrtask(None, 3), '???')
self.assertEqual(
abbrtask('feeds.tasks.refresh', 10),
'[.]refresh',
)
self.assertEqual(
abbrtask('feeds.tasks.refresh', 30),
'feeds.tasks.refresh',
)
def test_pretty(self):
self.assertTrue(pretty(('a', 'b', 'c')))