test_cursesmon.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. from __future__ import absolute_import
  2. from nose import SkipTest
  3. from celery.tests.case import AppCase
  4. class MockWindow(object):
  5. def getmaxyx(self):
  6. return self.y, self.x
  7. class test_CursesDisplay(AppCase):
  8. def setup(self):
  9. try:
  10. import curses # noqa
  11. except ImportError:
  12. raise SkipTest('curses monitor requires curses')
  13. from celery.events import cursesmon
  14. self.monitor = cursesmon.CursesMonitor(object(), app=self.app)
  15. self.win = MockWindow()
  16. self.monitor.win = self.win
  17. def test_format_row_with_default_widths(self):
  18. self.win.x, self.win.y = 91, 24
  19. row = self.monitor.format_row(
  20. '783da208-77d0-40ca-b3d6-37dd6dbb55d3',
  21. 'task.task.task.task.task.task.task.task.task.tas',
  22. 'workerworkerworkerworkerworkerworkerworkerworker',
  23. '21:13:20',
  24. 'SUCCESS')
  25. self.assertEqual('783da208-77d0-40ca-b3d6-37dd6dbb55d3 '
  26. 'workerworker... task.task.[.]tas 21:13:20 SUCCESS ',
  27. row)
  28. def test_format_row_with_truncated_uuid(self):
  29. self.win.x, self.win.y = 80, 24
  30. row = self.monitor.format_row(
  31. '783da208-77d0-40ca-b3d6-37dd6dbb55d3',
  32. 'task.task.task.task.task.task.task.task.task.tas',
  33. 'workerworkerworkerworkerworkerworkerworkerworker',
  34. '21:13:20',
  35. 'SUCCESS')
  36. self.assertEqual('783da208-77d0-40ca-b3d... workerworker... '
  37. 'task.task.[.]tas 21:13:20 SUCCESS ',
  38. row)
  39. def test_format_title_row(self):
  40. self.win.x, self.win.y = 80, 24
  41. row = self.monitor.format_row('UUID', 'TASK',
  42. 'WORKER', 'TIME', 'STATE')
  43. self.assertEqual('UUID WORKER '
  44. 'TASK TIME STATE ',
  45. row)
  46. def test_format_row_for_wide_screen_with_short_uuid(self):
  47. self.win.x, self.win.y = 140, 24
  48. row = self.monitor.format_row(
  49. '783da208-77d0-40ca-b3d6-37dd6dbb55d3',
  50. 'task.task.task.task.task.task.task.task.task.tas',
  51. 'workerworkerworkerworkerworkerworkerworkerworker',
  52. '21:13:20',
  53. 'SUCCESS')
  54. self.assertEqual(136, len(row))
  55. self.assertEqual('783da208-77d0-40ca-b3d6-37dd6dbb55d3 '
  56. 'workerworkerworkerworkerworkerworker... '
  57. 'task.task.task.task.task.task.task.[.]tas '
  58. '21:13:20 SUCCESS ',
  59. row)