Пример #1
0
 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
Пример #2
0
    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
Пример #3
0
 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')
Пример #4
0
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')
Пример #5
0
 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')
Пример #6
0
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"
Пример #7
0
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")