test_utils_timeutils.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from datetime import datetime, timedelta
  2. from celery.utils import timeutils
  3. from celery.tests.utils import unittest
  4. class test_timeutils(unittest.TestCase):
  5. def test_delta_resolution(self):
  6. D = timeutils.delta_resolution
  7. dt = datetime(2010, 3, 30, 11, 50, 58, 41065)
  8. deltamap = ((timedelta(days=2), datetime(2010, 3, 30, 0, 0)),
  9. (timedelta(hours=2), datetime(2010, 3, 30, 11, 0)),
  10. (timedelta(minutes=2), datetime(2010, 3, 30, 11, 50)),
  11. (timedelta(seconds=2), dt))
  12. for delta, shoulda in deltamap:
  13. self.assertEqual(D(dt, delta), shoulda)
  14. def test_timedelta_seconds(self):
  15. deltamap = ((timedelta(seconds=1), 1),
  16. (timedelta(seconds=27), 27),
  17. (timedelta(minutes=3), 3 * 60),
  18. (timedelta(hours=4), 4 * 60 * 60),
  19. (timedelta(days=3), 3 * 86400))
  20. for delta, seconds in deltamap:
  21. self.assertEqual(timeutils.timedelta_seconds(delta), seconds)
  22. def test_timedelta_seconds_returns_0_on_negative_time(self):
  23. delta = timedelta(days=-2)
  24. self.assertEqual(timeutils.timedelta_seconds(delta), 0)
  25. def test_humanize_seconds(self):
  26. t = ((4 * 60 * 60 * 24, "4 days"),
  27. (1 * 60 * 60 * 24, "1 day"),
  28. (4 * 60 * 60, "4 hours"),
  29. (1 * 60 * 60, "1 hour"),
  30. (4 * 60, "4 minutes"),
  31. (1 * 60, "1 minute"),
  32. (4, "4.00 seconds"),
  33. (1, "1.00 second"),
  34. (4.3567631221, "4.36 seconds"),
  35. (0, "now"))
  36. for seconds, human in t:
  37. self.assertEqual(timeutils.humanize_seconds(seconds), human)
  38. self.assertEqual(timeutils.humanize_seconds(4, prefix="about "),
  39. "about 4.00 seconds")
  40. def test_maybe_iso8601_datetime(self):
  41. now = datetime.now()
  42. self.assertIs(timeutils.maybe_iso8601(now), now)
  43. def test_maybe_timdelta(self):
  44. D = timeutils.maybe_timedelta
  45. for i in (30, 30.6):
  46. self.assertEqual(D(i), timedelta(seconds=i))
  47. self.assertEqual(D(timedelta(days=2)), timedelta(days=2))