'Sends simulated HTTP GET request to Pecan test app.
:param path: url path of target service
:param expect_errors: boolean value whether an error is expected based
on request
:param headers: A dictionary of headers to send along with the request
:param extra_environ: A dictionary of environ variables to send along
with the request
:param q: list of queries consisting of: field, value, op, and type
keys
:param groupby: list of fields to group by
:param status: Expected status code of response
:param override_params: literally encoded query param string
:param params: content for wsgi.input of request'

def get_json(self, path, expect_errors=False, headers=None, extra_environ=None, q=None, groupby=None, status=None, override_params=None, **params):

    q = (q or [])
    groupby = (groupby or [])
    full_path = (self.PATH_PREFIX + path)
    if override_params:
        all_params = override_params
    else:
        query_params = {'q.field': [], 'q.value': [], 'q.op': [], 'q.type': []}
        for query in q:
            for name in ['field', 'op', 'value', 'type']:
                query_params[('q.%s' % name)].append(query.get(name, ''))
        all_params = {}
        all_params.update(params)
        if q:
            all_params.update(query_params)
        if groupby:
            all_params.update({'groupby': groupby})
    response = self.app.get(full_path, params=all_params, headers=headers, extra_environ=extra_environ, expect_errors=expect_errors, status=status)
    if (not expect_errors):
        response = response.json
    return response
