test_datastructures.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import unittest
  2. import sys
  3. from celery.datastructures import PositionQueue, ExceptionInfo
  4. class TestPositionQueue(unittest.TestCase):
  5. def test_position_queue_unfilled(self):
  6. q = PositionQueue(length=10)
  7. for position in q.data:
  8. self.assertTrue(isinstance(position, q.UnfilledPosition))
  9. self.assertEquals(q.filled, [])
  10. self.assertEquals(len(q), 0)
  11. self.assertFalse(q.full())
  12. def test_position_queue_almost(self):
  13. q = PositionQueue(length=10)
  14. q[3] = 3
  15. q[6] = 6
  16. q[9] = 9
  17. self.assertEquals(q.filled, [3, 6, 9])
  18. self.assertEquals(len(q), 3)
  19. self.assertFalse(q.full())
  20. def test_position_queue_full(self):
  21. q = PositionQueue(length=10)
  22. for i in xrange(10):
  23. q[i] = i
  24. self.assertEquals(q.filled, list(xrange(10)))
  25. self.assertEquals(len(q), 10)
  26. self.assertTrue(q.full())
  27. class TestExceptionInfo(unittest.TestCase):
  28. def test_exception_info(self):
  29. try:
  30. raise LookupError("The quick brown fox jumps...")
  31. except LookupError:
  32. exc_info = sys.exc_info()
  33. einfo = ExceptionInfo(exc_info)
  34. self.assertEquals(str(einfo), "The quick brown fox jumps...")
  35. self.assertTrue(isinstance(einfo.exception, LookupError))
  36. self.assertEquals(einfo.exception.args,
  37. ("The quick brown fox jumps...", ))
  38. self.assertTrue(einfo.traceback)