test_cursesmon.py 2.6 KB

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