From: Jehiah Czebotar Date: Sun, 28 Aug 2011 00:51:45 +0000 (-0400) Subject: implement request_time in simplehttp_client (and tests) X-Git-Tag: v2.1.0~44^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b52a4d9aea5af43b7b342744a24fe009d0b0bb51;p=thirdparty%2Ftornado.git implement request_time in simplehttp_client (and tests) --- diff --git a/tornado/simple_httpclient.py b/tornado/simple_httpclient.py index e1a9ce405..ad45c2ca4 100644 --- a/tornado/simple_httpclient.py +++ b/tornado/simple_httpclient.py @@ -206,6 +206,7 @@ class _HTTPConnection(object): def _on_timeout(self): self._timeout = None self._run_callback(HTTPResponse(self.request, 599, + request_time=time.time() - self.start_time, error=HTTPError(599, "Timeout"))) self.stream.close() @@ -289,11 +290,14 @@ class _HTTPConnection(object): yield except Exception, e: logging.warning("uncaught exception", exc_info=True) - self._run_callback(HTTPResponse(self.request, 599, error=e)) + self._run_callback(HTTPResponse(self.request, 599, error=e, + request_time=time.time() - self.start_time, + )) def _on_close(self): self._run_callback(HTTPResponse( self.request, 599, + request_time=time.time() - self.start_time, error=HTTPError(599, "Connection closed"))) def _on_headers(self, data): @@ -362,6 +366,7 @@ class _HTTPConnection(object): return response = HTTPResponse(original_request, self.code, headers=self.headers, + request_time=time.time() - self.start_time, buffer=buffer, effective_url=self.request.url) self._run_callback(response) diff --git a/tornado/test/httpclient_test.py b/tornado/test/httpclient_test.py index ed6f04066..5fe776f7b 100644 --- a/tornado/test/httpclient_test.py +++ b/tornado/test/httpclient_test.py @@ -74,6 +74,7 @@ class HTTPClientCommonTestCase(AsyncHTTPTestCase, LogTrapTestCase): self.assertEqual(response.code, 200) self.assertEqual(response.headers["Content-Type"], "text/plain") self.assertEqual(response.body, b("Hello world!")) + self.assertEqual(int(response.request_time), 0) response = self.fetch("/hello?name=Ben") self.assertEqual(response.body, b("Hello Ben!")) diff --git a/tornado/test/simple_httpclient_test.py b/tornado/test/simple_httpclient_test.py index 662806620..6c5d710ca 100644 --- a/tornado/test/simple_httpclient_test.py +++ b/tornado/test/simple_httpclient_test.py @@ -150,11 +150,13 @@ class SimpleHTTPClientTestCase(AsyncHTTPTestCase, LogTrapTestCase): connect_timeout=0.1) response = self.wait() self.assertEqual(response.code, 599) + self.assertEqual(int(response.request_time * 10), 1) self.assertEqual(str(response.error), "HTTP 599: Timeout") def test_request_timeout(self): response = self.fetch('/hang', request_timeout=0.1) self.assertEqual(response.code, 599) + self.assertEqual(int(response.request_time * 10), 1) self.assertEqual(str(response.error), "HTTP 599: Timeout") def test_ipv6(self):