Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

58 строки
2.1KB

  1. import sys
  2. import unittest
  3. import six
  4. if six.PY3:
  5. from unittest import mock
  6. else:
  7. import mock
  8. if sys.version_info >= (3, 5):
  9. from engineio.async_drivers import aiohttp as async_aiohttp
  10. @unittest.skipIf(sys.version_info < (3, 5), 'only for Python 3.5+')
  11. class AiohttpTests(unittest.TestCase):
  12. def test_create_route(self):
  13. app = mock.MagicMock()
  14. mock_server = mock.MagicMock()
  15. async_aiohttp.create_route(app, mock_server, '/foo')
  16. app.router.add_get.assert_any_call('/foo', mock_server.handle_request)
  17. app.router.add_post.assert_any_call('/foo', mock_server.handle_request)
  18. def test_translate_request(self):
  19. request = mock.MagicMock()
  20. request._message.method = 'PUT'
  21. request._message.path = '/foo/bar?baz=1'
  22. request._message.version = (1, 1)
  23. request._message.headers = {'a': 'b', 'c-c': 'd', 'c_c': 'e',
  24. 'content-type': 'application/json',
  25. 'content-length': 123}
  26. request._payload = b'hello world'
  27. environ = async_aiohttp.translate_request(request)
  28. expected_environ = {
  29. 'REQUEST_METHOD': 'PUT',
  30. 'PATH_INFO': '/foo/bar',
  31. 'QUERY_STRING': 'baz=1',
  32. 'CONTENT_TYPE': 'application/json',
  33. 'CONTENT_LENGTH': 123,
  34. 'HTTP_A': 'b',
  35. # 'HTTP_C_C': 'd,e',
  36. 'RAW_URI': '/foo/bar?baz=1',
  37. 'SERVER_PROTOCOL': 'HTTP/1.1',
  38. 'wsgi.input': b'hello world',
  39. 'aiohttp.request': request,
  40. }
  41. for k, v in expected_environ.items():
  42. self.assertEqual(v, environ[k])
  43. self.assertTrue(
  44. environ['HTTP_C_C'] == 'd,e' or environ['HTTP_C_C'] == 'e,d')
  45. # @mock.patch('async_aiohttp.aiohttp.web.Response')
  46. def test_make_response(self):
  47. rv = async_aiohttp.make_response('202 ACCEPTED', {'foo': 'bar'},
  48. b'payload', {})
  49. self.assertEqual(rv.status, 202)
  50. self.assertEqual(rv.headers['foo'], 'bar')
  51. self.assertEqual(rv.body, b'payload')