def __call__(self, environ, start_response): remote_api_stub.RemoteStub._SetRequestId( environ[http_runtime_constants.REQUEST_ID_ENVIRON]) request_type = environ.pop(http_runtime_constants.REQUEST_TYPE_HEADER, None) request_state.start_request( environ[http_runtime_constants.REQUEST_ID_ENVIRON]) try: if request_type == 'background': response = self.handle_background_request(environ) elif request_type == 'shutdown': response = self.handle_shutdown_request(environ) elif request_type == 'interactive': response = self.handle_interactive_request(environ) else: response = self.handle_normal_request(environ) finally: request_state.end_request( environ[http_runtime_constants.REQUEST_ID_ENVIRON]) error = response.get('error', 0) self._flush_logs(response.get('logs', [])) if error == 0: response_code = response.get('response_code', 200) status = '%d %s' % (response_code, httplib_responses.get( response_code, 'Unknown Status Code')) start_response(status, response.get('headers', [])) return [response.get('body', '')] elif error == 2: start_response('404 Not Found', []) return [] else: start_response('500 Internal Server Error', [(http_runtime_constants.ERROR_CODE_HEADER, str(error))]) return []
def __call__(self, environ, start_response): remote_api_stub.RemoteStub._SetRequestId(environ[http_runtime_constants.REQUEST_ID_ENVIRON]) request_type = environ.pop(http_runtime_constants.REQUEST_TYPE_HEADER, None) request_state.start_request(environ[http_runtime_constants.REQUEST_ID_ENVIRON]) try: if request_type == "background": response = self.handle_background_request(environ) elif request_type == "shutdown": response = self.handle_shutdown_request(environ) elif request_type == "interactive": response = self.handle_interactive_request(environ) else: response = self.handle_normal_request(environ) finally: request_state.end_request(environ[http_runtime_constants.REQUEST_ID_ENVIRON]) error = response.get("error", 0) self._flush_logs(response.get("logs", [])) if error == 0: response_code = response.get("response_code", 200) status = "%d %s" % (response_code, httplib_responses.get(response_code, "Unknown Status Code")) start_response(status, response.get("headers", [])) return [response.get("body", "")] elif error == 2: start_response("404 Not Found", []) return [] else: start_response("500 Internal Server Error", [(http_runtime_constants.ERROR_CODE_HEADER, str(error))]) return []
def test_end_request_function(self): request_state._request_states = {'id': self.request_state} self.mox.StubOutWithMock(self.request_state, 'end_request') self.request_state.end_request() self.mox.ReplayAll() request_state.end_request('id') self.mox.VerifyAll() self.assertEqual([], request_state.get_request_states())
def test_end_request_function(self): request_state._request_states = {'id': self.request_state} self.mox.StubOutWithMock(self.request_state, 'end_request') self.request_state.end_request() self.mox.ReplayAll() request_state.end_request('id') self.mox.VerifyAll() self.assertEqual([], request_state.get_request_states())