mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-16 02:02:58 -07:00
Update cheroot-8.5.2
This commit is contained in:
parent
4ac151d7de
commit
182e5f553e
25 changed files with 2171 additions and 602 deletions
|
@ -18,6 +18,7 @@ from cheroot.test import helper
|
|||
HTTP_BAD_REQUEST = 400
|
||||
HTTP_LENGTH_REQUIRED = 411
|
||||
HTTP_NOT_FOUND = 404
|
||||
HTTP_REQUEST_ENTITY_TOO_LARGE = 413
|
||||
HTTP_OK = 200
|
||||
HTTP_VERSION_NOT_SUPPORTED = 505
|
||||
|
||||
|
@ -78,7 +79,7 @@ def _get_http_response(connection, method='GET'):
|
|||
|
||||
@pytest.fixture
|
||||
def testing_server(wsgi_server_client):
|
||||
"""Attach a WSGI app to the given server and pre-configure it."""
|
||||
"""Attach a WSGI app to the given server and preconfigure it."""
|
||||
wsgi_server = wsgi_server_client.server_instance
|
||||
wsgi_server.wsgi_app = HelloController()
|
||||
wsgi_server.max_request_body_size = 30000000
|
||||
|
@ -92,6 +93,21 @@ def test_client(testing_server):
|
|||
return testing_server.server_client
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def testing_server_with_defaults(wsgi_server_client):
|
||||
"""Attach a WSGI app to the given server and preconfigure it."""
|
||||
wsgi_server = wsgi_server_client.server_instance
|
||||
wsgi_server.wsgi_app = HelloController()
|
||||
wsgi_server.server_client = wsgi_server_client
|
||||
return wsgi_server
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def test_client_with_defaults(testing_server_with_defaults):
|
||||
"""Get and return a test client out of the given server."""
|
||||
return testing_server_with_defaults.server_client
|
||||
|
||||
|
||||
def test_http_connect_request(test_client):
|
||||
"""Check that CONNECT query results in Method Not Allowed status."""
|
||||
status_line = test_client.connect('/anything')[0]
|
||||
|
@ -262,8 +278,30 @@ def test_content_length_required(test_client):
|
|||
assert actual_status == HTTP_LENGTH_REQUIRED
|
||||
|
||||
|
||||
@pytest.mark.xfail(
|
||||
reason='https://github.com/cherrypy/cheroot/issues/106',
|
||||
strict=False, # sometimes it passes
|
||||
)
|
||||
def test_large_request(test_client_with_defaults):
|
||||
"""Test GET query with maliciously large Content-Length."""
|
||||
# If the server's max_request_body_size is not set (i.e. is set to 0)
|
||||
# then this will result in an `OverflowError: Python int too large to
|
||||
# convert to C ssize_t` in the server.
|
||||
# We expect that this should instead return that the request is too
|
||||
# large.
|
||||
c = test_client_with_defaults.get_connection()
|
||||
c.putrequest('GET', '/hello')
|
||||
c.putheader('Content-Length', str(2**64))
|
||||
c.endheaders()
|
||||
|
||||
response = c.getresponse()
|
||||
actual_status = response.status
|
||||
|
||||
assert actual_status == HTTP_REQUEST_ENTITY_TOO_LARGE
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'request_line,status_code,expected_body',
|
||||
('request_line', 'status_code', 'expected_body'),
|
||||
(
|
||||
(
|
||||
b'GET /', # missing proto
|
||||
|
@ -401,7 +439,7 @@ class CloseResponse:
|
|||
|
||||
@pytest.fixture
|
||||
def testing_server_close(wsgi_server_client):
|
||||
"""Attach a WSGI app to the given server and pre-configure it."""
|
||||
"""Attach a WSGI app to the given server and preconfigure it."""
|
||||
wsgi_server = wsgi_server_client.server_instance
|
||||
wsgi_server.wsgi_app = CloseController()
|
||||
wsgi_server.max_request_body_size = 30000000
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue