response = self.fetch("/hello")
response.rethrow()
self.assertIsNotNone(response.request_time)
+ assert response.request_time is not None # for mypy
self.assertGreaterEqual(response.request_time, 0)
self.assertLess(response.request_time, 1.0)
# A very crude check to make sure that start_time is based on
# wall time and not the monotonic clock.
self.assertIsNotNone(response.start_time)
+ assert response.start_time is not None # for mypy
self.assertLess(abs(response.start_time - start_time), 1.0)
for k, v in response.time_info.items():
cookie = handler._cookies["foo"]
match = re.match(rb"12345678\|([0-9]+)\|([0-9a-f]+)", cookie)
self.assertIsNotNone(match)
+ assert match is not None # for mypy
timestamp = match.group(1)
sig = match.group(2)
self.assertEqual(
response = self.fetch("/set_expires_days")
header = response.headers.get("Set-Cookie")
self.assertIsNotNone(header)
+ assert header is not None # for mypy
match = re.match("foo=bar; expires=(?P<expires>.+); Path=/", header)
self.assertIsNotNone(match)
+ assert match is not None # for mypy
expires = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
days=10