Ejemplo n.º 1
0
def test_parse_invalid_json():
    request = webapp2.Request.blank(
        "/echo",
        POST='{"foo": "bar", }',
        headers={"content-type": "application/json"})
    with pytest.raises(json.JSONDecodeError):
        parser.parse(hello_args, req=request)
Ejemplo n.º 2
0
def test_parse_json_content_type_mismatch():
    request = webapp2.Request.blank(
        "/echo_json",
        POST=json.dumps({"name": "foo"}),
        headers={"content-type": "application/x-www-form-urlencoded"},
    )
    assert parser.parse(hello_args, req=request) == {"name": "World"}
Ejemplo n.º 3
0
def test_parse_json():
    expected = {"name": "Fred"}
    request = webapp2.Request.blank(
        "/echo",
        POST=json.dumps(expected),
        headers={"content-type": "application/json"})
    assert parser.parse(hello_args, req=request) == expected
Ejemplo n.º 4
0
def test_default_app_request():
    """Test that parser.parse uses the request from webapp2.get_request() if no request is passed"""
    expected = {'name': 'Joe'}
    request = webapp2.Request.blank('/echo', POST=expected)
    app = webapp2.WSGIApplication([])
    app.set_globals(app, request)
    assert parser.parse(hello_args) == expected
Ejemplo n.º 5
0
def test_parse_json():
    expected = {'name': 'Fred'}
    request = webapp2.Request.blank(
        '/echo',
        POST=json.dumps(expected),
        headers={'content-type': 'application/json'})
    assert parser.parse(hello_args, req=request) == expected
Ejemplo n.º 6
0
def test_parsing_cookies():
    # whitespace is not valid in a cookie name or value per RFC 6265
    # http://tools.ietf.org/html/rfc6265#section-4.1.1
    expected = {'name': 'Jean-LucPicard'}
    response = webapp2.Response()
    response.set_cookie('name', expected['name'])
    request = webapp2.Request.blank('/', headers={'Cookie': response.headers['Set-Cookie']})
    assert parser.parse(hello_args, req=request, locations=('cookies',)) == expected
Ejemplo n.º 7
0
def test_parse_json_with_vendor_media_type():
    expected = {"name": "Fred"}
    request = webapp2.Request.blank(
        "/echo",
        POST=json.dumps(expected),
        headers={"content-type": "application/vnd.api+json"},
    )
    assert parser.parse(hello_args, req=request) == expected
Ejemplo n.º 8
0
def test_default_app_request():
    """Test that parser.parse uses the request from webapp2.get_request() if no
    request is passed
    """
    expected = {"name": "Joe"}
    request = webapp2.Request.blank("/echo", POST=expected)
    app = webapp2.WSGIApplication([])
    app.set_globals(app, request)
    assert parser.parse(hello_args, location="form") == expected
Ejemplo n.º 9
0
def test_parsing_cookies():
    # whitespace is not valid in a cookie name or value per RFC 6265
    # http://tools.ietf.org/html/rfc6265#section-4.1.1
    expected = {"name": "Jean-LucPicard"}
    response = webapp2.Response()
    response.set_cookie("name", expected["name"])
    request = webapp2.Request.blank(
        "/", headers={"Cookie": response.headers["Set-Cookie"]})
    assert parser.parse(hello_args, req=request,
                        location="cookies") == expected
Ejemplo n.º 10
0
def test_validation_error_with_message():
    request = webapp2.Request.blank('/', POST={'num': '3'})
    with pytest.raises(ValidationError) as exc:
        parser.parse(hello_validate, req=request)
        assert "Houston, we've had a problem." in exc.value
Ejemplo n.º 11
0
def test_exception_on_validation_error():
    request = webapp2.Request.blank('/', POST={'num': '3'})
    with pytest.raises(ValidationError):
        parser.parse(hello_validate, req=request)
Ejemplo n.º 12
0
def test_parsing_headers():
    expected = {"name": "Fred"}
    request = webapp2.Request.blank("/", headers=expected)
    assert parser.parse(hello_args, req=request, locations=("headers",)) == expected
Ejemplo n.º 13
0
def test_parsing_headers():
    expected = {"name": "Fred"}
    request = webapp2.Request.blank("/", headers=expected)
    assert (parser.parse(hello_exclude_schema, req=request,
                         location="headers") == expected)
Ejemplo n.º 14
0
def test_parsing_form_default():
    request = webapp2.Request.blank('/echo', POST='')
    assert parser.parse(hello_args, req=request) == {'name': 'World'}
Ejemplo n.º 15
0
def test_parse_form():
    expected = {'name': 'Joe'}
    request = webapp2.Request.blank('/echo', POST=expected)
    assert parser.parse(hello_args, req=request) == expected
Ejemplo n.º 16
0
def test_parse_json_default():
    request = webapp2.Request.blank(
        '/echo', POST='', headers={'content-type': 'application/json'})
    assert parser.parse(hello_args, req=request) == {'name': 'World'}
Ejemplo n.º 17
0
def test_parse_querystring_multiple():
    expected = {"name": ["steve", "Loria"]}
    request = webapp2.Request.blank("/echomulti?name=steve&name=Loria")
    assert parser.parse(hello_multiple, req=request,
                        location="query") == expected
Ejemplo n.º 18
0
def test_parse_querystring_args():
    request = webapp2.Request.blank("/echo?name=Fred")
    assert parser.parse(hello_args, req=request, location="query") == {
        "name": "Fred"
    }
Ejemplo n.º 19
0
def test_validation_error_with_message():
    request = webapp2.Request.blank("/", POST={"num": "3"})
    with pytest.raises(ValidationError) as exc:
        parser.parse(hello_validate, req=request, location="form")
        assert "Houston, we've had a problem." in exc.value
Ejemplo n.º 20
0
def test_exception_on_validation_error():
    request = webapp2.Request.blank("/", POST={"num": "3"})
    with pytest.raises(ValidationError):
        parser.parse(hello_validate, req=request, location="form")
Ejemplo n.º 21
0
def test_parse_querystring_args():
    request = webapp2.Request.blank('/echo?name=Fred')
    assert parser.parse(hello_args, req=request) == {'name': 'Fred'}
Ejemplo n.º 22
0
def test_parse_querystring_multiple():
    expected = {'name': ['steve', 'Loria']}
    request = webapp2.Request.blank('/echomulti?name=steve&name=Loria')
    assert parser.parse(hello_multiple, req=request) == expected
Ejemplo n.º 23
0
def test_parsing_headers():
    expected = {'Name': 'Fred'}
    request = webapp2.Request.blank('/', headers=expected)
    assert parser.parse({'Name': fields.Str(missing='World')},
                        req=request,
                        locations=('headers', )) == expected
Ejemplo n.º 24
0
def test_parse_form_multiple():
    expected = {'name': ['steve', 'Loria']}
    request = webapp2.Request.blank('/echo',
                                    POST=urllib.urlencode(expected,
                                                          doseq=True))
    assert parser.parse(hello_multiple, req=request) == expected
Ejemplo n.º 25
0
def test_parsing_form_default():
    request = webapp2.Request.blank("/echo", POST="")
    assert parser.parse(hello_args, req=request, location="form") == {
        "name": "World"
    }
Ejemplo n.º 26
0
def test_parse_form():
    expected = {"name": "Joe"}
    request = webapp2.Request.blank("/echo", POST=expected)
    assert parser.parse(hello_args, req=request, location="form") == expected
Ejemplo n.º 27
0
def test_parse_json_default():
    request = webapp2.Request.blank(
        "/echo", POST="", headers={"content-type": "application/json"})
    assert parser.parse(hello_args, req=request) == {"name": "World"}
Ejemplo n.º 28
0
def test_parsing_headers():
    expected = {'name': 'Fred'}
    request = webapp2.Request.blank('/', headers=expected)
    assert parser.parse(hello_args, req=request,
                        locations=('headers', )) == expected
Ejemplo n.º 29
0
def test_parse_form_multiple():
    expected = {"name": ["steve", "Loria"]}
    request = webapp2.Request.blank("/echo",
                                    POST=urlencode(expected, doseq=True))
    assert parser.parse(hello_multiple, req=request,
                        location="form") == expected