'Get the given url (well, actually a path like
``\'/page.html\'``).
``params``:
A query string, or a dictionary that will be encoded
into a query string.  You may also include a query
string on the ``url``.
``headers``:
A dictionary of extra headers to send.
``extra_environ``:
A dictionary of environmental variables that should
be added to the request.
``status``:
The integer status code you expect (if not 200 or 3xx).
If you expect a 404 response, for instance, you must give
``status=404`` or it will be an error.  You can also give
a wildcard, like ``\'3*\'`` or ``\'*\'``.
``expect_errors``:
If this is not true, then if anything is written to
``wsgi.errors`` it will be an error.  If it is true, then
non-200/3xx responses are also okay.
Returns a `response object
<class-paste.fixture.TestResponse.html>`_'

def get(self, url, params=None, headers=None, extra_environ=None, status=None, expect_errors=False):

    if (extra_environ is None):
        extra_environ = {}
    __tracebackhide__ = True
    if params:
        if (not isinstance(params, (six.binary_type, six.text_type))):
            params = urlencode(params, doseq=True)
        if ('?' in url):
            url += '&'
        else:
            url += '?'
        url += params
    environ = self._make_environ()
    url = str(url)
    if ('?' in url):
        (url, environ['QUERY_STRING']) = url.split('?', 1)
    else:
        environ['QUERY_STRING'] = ''
    self._set_headers(headers, environ)
    environ.update(extra_environ)
    req = TestRequest(url, environ, expect_errors)
    return self.do_request(req, status=status)
