]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Make sure that the in-operator on HTTPHeaders is case insensitive
authorArnaud Schoonjans <arnaud.schoonjans@inmanta.com>
Mon, 15 Dec 2025 11:12:18 +0000 (12:12 +0100)
committerBen Darnell <ben@bendarnell.com>
Mon, 15 Dec 2025 18:34:05 +0000 (13:34 -0500)
tornado/httputil.py
tornado/test/httputil_test.py

index 7fa30975d938490d75def2009021e74e9aeef488..880186f18532bf909d2962c56761b6c57adc31de 100644 (file)
@@ -345,7 +345,8 @@ class HTTPHeaders(StrMutableMapping):
         # in __getitem__ when it's not needed.
         if not isinstance(name, str):
             return False
-        return name in self._as_list
+        norm_name = _normalize_header(name)
+        return norm_name in self._as_list
 
     def __getitem__(self, name: str) -> str:
         header = _normalize_header(name)
index 655ef7fbb301933766539ff62cba6775aee2936b..e7c7b4aa384c863a5bf8416e7a6e70a7eb794bc4 100644 (file)
@@ -329,6 +329,9 @@ Foo: even
             sorted(list(headers.get_all())),
             [("Asdf", "qwer zxcv"), ("Foo", "bar baz"), ("Foo", "even more lines")],
         )
+        # Verify case insensitivity in-operator
+        self.assertTrue("asdf" in headers)
+        self.assertTrue("Asdf" in headers)
 
     def test_continuation(self):
         data = "Foo: bar\r\n\tasdf"