def search_data(environ, start_response): with eliot.start_action(action_type='api:search-data') as action: qs = parse_qs(get_query_string(environ)) query = {key: value[0] for key, value in qs.items()} if '_start_time' in query: query['_start_time'] = _make_search_date(query['_start_time']) if '_end_time' in query: query['_end_time'] = _make_search_date(query['_end_time']) if '_count' in query: query['_count'] = int(query['_count']) if '_summary' in query: summarise = query['_summary'] == 'true' aggregate = query['_summary'] == 'aggregate' del query['_summary'] else: summarise = False aggregate = False action.add_success_fields(query=query) query_result = db.search(**query) if summarise: result = [(key, _summarize_callgraph(cg)) for key, cg in query_result] elif aggregate: result = combine_call_graphs(cg for key, cg in query_result) else: result = list(query_result) action.add_success_fields(results=len(result)) return result
def __call__(self, environ, start_response): ''' If there is '_escaped_fragment_' in the querystring, runs the middleware. ''' qs_dict = urlparse.parse_qs(wsgi.get_query_string(environ), keep_blank_values=True) if '_escaped_fragment_' in qs_dict: self.qs = qs_dict return super(IframeReplacerMiddleware, self) \ .__call__(environ, start_response) else: app_iter = self.app(environ, start_response) return app_iter
def tracking(self, environ, start_response): local_id = pop_path_info(environ) qs = get_query_string(environ) message_id = parse_qs(qs).get('messageID', [None])[0] if not local_id and not message_id: return BadRequest with self.db_env.begin(db=self.tracking_db) as tx: if local_id: tracking_data = tx.get(local_id.encode('ascii')) else: msg_key = message_id.encode('ascii') tracking_data = tx.get(MSG_TRACKING_PREFIX + msg_key) if not tracking_data: metadata = pickle.loads( tx.get(msg_key, db=self.metadata_db)) tracking_data = json.dumps( make_tracking_data(message_id, metadata)).encode('utf-8') if not tracking_data: return NotFound else: return Response(tracking_data, content_type='application/json')
def test_query_string_fetching(): env = create_environ(u'/?\N{SNOWMAN}=\N{COMET}') qs = wsgi.get_query_string(env) strict_eq(qs, '%E2%98%83=%E2%98%84')
def test_query_string_fetching(self): env = create_environ(u'/?\N{SNOWMAN}=\N{COMET}') qs = wsgi.get_query_string(env) self.assert_strict_equal(qs, '%E2%98%83=%E2%98%84')
def test_query_string_fetching(): env = create_environ("/?\N{SNOWMAN}=\N{COMET}") qs = wsgi.get_query_string(env) assert qs == "%E2%98%83=%E2%98%84"
def test_query_string_fetching(): env = create_environ(u"/?\N{SNOWMAN}=\N{COMET}") qs = wsgi.get_query_string(env) strict_eq(qs, "%E2%98%83=%E2%98%84")