summaryrefslogtreecommitdiff
path: root/waitress/tests/test_parser.py
diff options
context:
space:
mode:
Diffstat (limited to 'waitress/tests/test_parser.py')
-rw-r--r--waitress/tests/test_parser.py24
1 files changed, 21 insertions, 3 deletions
diff --git a/waitress/tests/test_parser.py b/waitress/tests/test_parser.py
index 2e8d469..8111e3f 100644
--- a/waitress/tests/test_parser.py
+++ b/waitress/tests/test_parser.py
@@ -128,7 +128,7 @@ GET /foobar HTTP/8.4
self.assertEqual(result, 0)
def test_received_cl_too_large(self):
- from waitress.parser import RequestEntityTooLarge
+ from waitress.utilities import RequestEntityTooLarge
self.parser.adj.max_request_body_size = 2
data = b"""\
GET /foobar HTTP/8.4
@@ -141,7 +141,7 @@ Content-Length: 10
self.assertTrue(isinstance(self.parser.error, RequestEntityTooLarge))
def test_received_headers_too_large(self):
- from waitress.parser import RequestHeaderFieldsTooLarge
+ from waitress.utilities import RequestHeaderFieldsTooLarge
self.parser.adj.max_request_header_size = 2
data = b"""\
GET /foobar HTTP/8.4
@@ -154,7 +154,7 @@ X-Foo: 1
RequestHeaderFieldsTooLarge))
def test_received_body_too_large(self):
- from waitress.parser import RequestEntityTooLarge
+ from waitress.utilities import RequestEntityTooLarge
self.parser.adj.max_request_body_size = 2
data = b"""\
GET /foobar HTTP/1.1
@@ -171,6 +171,24 @@ This string has 32 characters\r
self.assertTrue(isinstance(self.parser.error,
RequestEntityTooLarge))
+ def test_received_error_from_parser(self):
+ from waitress.utilities import BadRequest
+ data = b"""\
+GET /foobar HTTP/1.1
+Transfer-Encoding: chunked
+X-Foo: 1
+
+garbage
+"""
+ # header
+ result = self.parser.received(data)
+ # body
+ result = self.parser.received(data[result:])
+ self.assertEqual(result, 8)
+ self.assertTrue(self.parser.completed)
+ self.assertTrue(isinstance(self.parser.error,
+ BadRequest))
+
def test_parse_header_gardenpath(self):
data = b"""\
GET /foobar HTTP/8.4