test_text.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. from __future__ import absolute_import, unicode_literals
  2. import pytest
  3. from celery.utils.text import (
  4. abbr,
  5. abbrtask,
  6. ensure_newlines,
  7. indent,
  8. pretty,
  9. truncate,
  10. truncate_bytes,
  11. )
  12. RANDTEXT = """\
  13. The quick brown
  14. fox jumps
  15. over the
  16. lazy dog\
  17. """
  18. RANDTEXT_RES = """\
  19. The quick brown
  20. fox jumps
  21. over the
  22. lazy dog\
  23. """
  24. QUEUES = {
  25. 'queue1': {
  26. 'exchange': 'exchange1',
  27. 'exchange_type': 'type1',
  28. 'routing_key': 'bind1',
  29. },
  30. 'queue2': {
  31. 'exchange': 'exchange2',
  32. 'exchange_type': 'type2',
  33. 'routing_key': 'bind2',
  34. },
  35. }
  36. QUEUE_FORMAT1 = '.> queue1 exchange=exchange1(type1) key=bind1'
  37. QUEUE_FORMAT2 = '.> queue2 exchange=exchange2(type2) key=bind2'
  38. class test_Info:
  39. def test_textindent(self):
  40. assert indent(RANDTEXT, 4) == RANDTEXT_RES
  41. def test_format_queues(self, app):
  42. app.amqp.queues = app.amqp.Queues(QUEUES)
  43. assert (sorted(app.amqp.queues.format().split('\n')) ==
  44. sorted([QUEUE_FORMAT1, QUEUE_FORMAT2]))
  45. def test_ensure_newlines(self):
  46. assert len(ensure_newlines('foo\nbar\nbaz\n').splitlines()) == 3
  47. assert len(ensure_newlines('foo\nbar').splitlines()) == 2
  48. @pytest.mark.parametrize('s,maxsize,expected', [
  49. ('ABCDEFGHI', 3, 'ABC...'),
  50. ('ABCDEFGHI', 10, 'ABCDEFGHI'),
  51. ])
  52. def test_truncate_text(s, maxsize, expected):
  53. assert truncate(s, maxsize) == expected
  54. @pytest.mark.parametrize('s,maxsize,expected', [
  55. (b'ABCDEFGHI', 3, b'ABC...'),
  56. (b'ABCDEFGHI', 10, b'ABCDEFGHI'),
  57. ])
  58. def test_truncate_bytes(s, maxsize, expected):
  59. assert truncate_bytes(s, maxsize) == expected
  60. @pytest.mark.parametrize('args,expected', [
  61. ((None, 3), '???'),
  62. (('ABCDEFGHI', 6), 'ABC...'),
  63. (('ABCDEFGHI', 20), 'ABCDEFGHI'),
  64. (('ABCDEFGHI', 6, None), 'ABCDEF'),
  65. ])
  66. def test_abbr(args, expected):
  67. assert abbr(*args) == expected
  68. @pytest.mark.parametrize('s,maxsize,expected', [
  69. (None, 3, '???'),
  70. ('feeds.tasks.refresh', 10, '[.]refresh'),
  71. ('feeds.tasks.refresh', 30, 'feeds.tasks.refresh'),
  72. ])
  73. def test_abbrtask(s, maxsize, expected):
  74. assert abbrtask(s, maxsize) == expected
  75. def test_pretty():
  76. assert pretty(('a', 'b', 'c'))