https://github.com/tornadoweb/tornado/issues/3408
)
self.assertEqual(response2.code, 200)
+ def test_static_304_if_modified_since_invalid(self):
+ response = self.get_and_head(
+ "/static/robots.txt",
+ headers={"If-Modified-Since": "!nv@l!d"},
+ )
+ self.assertEqual(response.code, 200)
+
def test_static_if_modified_since_pre_epoch(self):
# On windows, the functions that work with time_t do not accept
# negative values, and at least one client (processing.js) seems
# content has not been modified
ims_value = self.request.headers.get("If-Modified-Since")
if ims_value is not None:
- if_since = email.utils.parsedate_to_datetime(ims_value)
+ try:
+ if_since = email.utils.parsedate_to_datetime(ims_value)
+ except Exception:
+ return False
if if_since.tzinfo is None:
if_since = if_since.replace(tzinfo=datetime.timezone.utc)
assert self.modified is not None