Source code for tests.test_views
from unittest.mock import patch
from django.http import HttpResponseBadRequest
from django.test import RequestFactory, SimpleTestCase
from django_aws_api_gateway_websockets import views
[docs]class WebSocketViewSimpleTestCase(SimpleTestCase):
"""For tests the do not require a DB"""
[docs] def test_default_route_selection_key(self):
self.assertEqual("action", views.WebSocketView.route_selection_key)
[docs] def test_default_required_headers(self):
self.assertEqual(
[
"Host",
"X-Real-Ip",
"X-Forwarded-For",
"X-Forwarded-Proto",
"Connection",
"Content-Length",
"X-Forwarded-Port",
"X-Amzn-Trace-Id",
"Connectionid",
"User-Agent",
"X-Amzn-Apigateway-Api-Id",
],
views.WebSocketView.required_headers,
)
[docs] def test_default_required_connection_headers(self):
self.assertEqual(
[
"Cookie",
"Origin",
"Sec-Websocket-Extensions",
"Sec-Websocket-Key",
"Sec-Websocket-Version",
],
views.WebSocketView.required_connection_headers,
)
[docs] def test_default_expected_useragent_prefix(self):
self.assertEqual(
"AmazonAPIGateway_", views.WebSocketView.expected_useragent_prefix
)
[docs] def test_default_aws_api_gateway_id(self):
self.assertIsNone(views.WebSocketView.aws_api_gateway_id)
[docs] def test__return_bad_request(self):
"""Should log a warning message and return a HttpBadRequest object"""
msg = "This is the reason for the bad request"
request = self.factory.get("")
obj = views.WebSocketView()
res = obj._return_bad_request(msg)
self.assertIsInstance(res, HttpResponseBadRequest)
self.assertEqual(400, res.status_code)