From 42dd4190ac01e5cba017948ab882c71017ea18d6 Mon Sep 17 00:00:00 2001 From: "Paul J. Dorn" Date: Thu, 7 Dec 2023 18:46:13 +0100 Subject: [PATCH] test: verify TOKEN_RE against common HTTP Methods --- tests/test_http.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/test_http.py b/tests/test_http.py index b6ca46b2..0eb69460 100644 --- a/tests/test_http.py +++ b/tests/test_http.py @@ -10,6 +10,17 @@ from gunicorn.http.body import Body, LengthReader, EOFReader from gunicorn.http.wsgi import Response from gunicorn.http.unreader import Unreader, IterUnreader, SocketUnreader from gunicorn.http.errors import InvalidHeader, InvalidHeaderName +from gunicorn.http.message import TOKEN_RE + + +def test_method_pattern(): + assert TOKEN_RE.fullmatch("GET") + assert TOKEN_RE.fullmatch("MKCALENDAR") + assert not TOKEN_RE.fullmatch("GET:") + assert not TOKEN_RE.fullmatch("GET;") + RFC9110_5_6_2_TOKEN_DELIM = r'"(),/:;<=>?@[\]{}' + for bad_char in RFC9110_5_6_2_TOKEN_DELIM: + assert not TOKEN_RE.match(bad_char) def assert_readline(payload, size, expected):