Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_syn.py 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from __future__ import absolute_import
  2. import socket
  3. import sys
  4. import types
  5. from kombu import syn
  6. from kombu.tests.case import Case, patch, module_exists
  7. class test_syn(Case):
  8. def test_compat(self):
  9. self.assertEqual(syn.blocking(lambda: 10), 10)
  10. syn.select_blocking_method('foo')
  11. def test_detect_environment(self):
  12. try:
  13. syn._environment = None
  14. X = syn.detect_environment()
  15. self.assertEqual(syn._environment, X)
  16. Y = syn.detect_environment()
  17. self.assertEqual(Y, X)
  18. finally:
  19. syn._environment = None
  20. @module_exists('eventlet', 'eventlet.patcher')
  21. def test_detect_environment_eventlet(self):
  22. with patch('eventlet.patcher.is_monkey_patched', create=True) as m:
  23. self.assertTrue(sys.modules['eventlet'])
  24. m.return_value = True
  25. env = syn._detect_environment()
  26. m.assert_called_with(socket)
  27. self.assertEqual(env, 'eventlet')
  28. @module_exists('gevent')
  29. def test_detect_environment_gevent(self):
  30. with patch('gevent.socket', create=True) as m:
  31. prev, socket.socket = socket.socket, m.socket
  32. try:
  33. self.assertTrue(sys.modules['gevent'])
  34. env = syn._detect_environment()
  35. self.assertEqual(env, 'gevent')
  36. finally:
  37. socket.socket = prev
  38. def test_detect_environment_no_eventlet_or_gevent(self):
  39. try:
  40. sys.modules['eventlet'] = types.ModuleType('eventlet')
  41. sys.modules['eventlet.patcher'] = types.ModuleType('eventlet')
  42. self.assertEqual(syn._detect_environment(), 'default')
  43. finally:
  44. sys.modules.pop('eventlet', None)
  45. syn._detect_environment()
  46. try:
  47. sys.modules['gevent'] = types.ModuleType('gevent')
  48. self.assertEqual(syn._detect_environment(), 'default')
  49. finally:
  50. sys.modules.pop('gevent', None)
  51. syn._detect_environment()