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_get_request_states(self): request_state.start_request('1') request_state.start_request('2') request_state.start_request('3') self.assertEqual(3, len(request_state.get_request_states())) self.assertItemsEqual( [request_state.get_request_state(request_id) for request_id in ['1', '2', '3']], request_state.get_request_states())
def test_get_request_states(self): request_state.start_request('1') request_state.start_request('2') request_state.start_request('3') self.assertEqual(3, len(request_state.get_request_states())) self.assertItemsEqual([ request_state.get_request_state(request_id) for request_id in ['1', '2', '3'] ], request_state.get_request_states())
def test_start_request_function(self): request_state.start_request('id') self.assertEqual(1, len(request_state.get_request_states())) self.assertEqual('id', request_state.get_request_state('id').request_id)