test_concurrency_evlet.py 1017 B

12345678910111213141516171819202122232425262728293031323334
  1. import os
  2. import sys
  3. from nose import SkipTest
  4. from celery.tests.utils import unittest
  5. class EventletCase(unittest.TestCase):
  6. def setUp(self):
  7. try:
  8. self.eventlet = __import__("eventlet")
  9. except ImportError:
  10. raise SkipTest(
  11. "eventlet not installed, skipping related tests.")
  12. class test_eventlet_patch(EventletCase):
  13. def test_is_patched(self):
  14. monkey_patched = []
  15. prev_monkey_patch = self.eventlet.monkey_patch
  16. self.eventlet.monkey_patch = lambda: monkey_patched.append(True)
  17. prev_evlet = sys.modules.pop("celery.concurrency.evlet", None)
  18. os.environ.pop("EVENTLET_NOPATCH")
  19. try:
  20. from celery.concurrency import evlet
  21. self.assertTrue(evlet)
  22. self.assertTrue(monkey_patched)
  23. finally:
  24. sys.modules["celery.concurrency.evlet"] = prev_evlet
  25. os.environ["EVENTLET_NOPATCH"] = "yes"
  26. self.eventlet.monkey_patch = prev_monkey_patch