예제 #1
0
def test_can_parse_mixed_query():
    query = Query("foo&spam=eggs")
    assert str(query) == "foo&spam=eggs"
    assert query.string == "foo&spam=eggs"
    assert dict(query) == {"foo": None, "spam": "eggs"}
    assert query.get("foo") is None
    assert query.get("spam") == "eggs"
예제 #2
0
def test_can_parse_multi_key_value_query():
    query = Query("foo=bar&spam=eggs")
    assert str(query) == "foo=bar&spam=eggs"
    assert query.string == "foo=bar&spam=eggs"
    assert dict(query) == {"foo": "bar", "spam": "eggs"}
    assert query.get("foo") == "bar"
    assert query.get("spam") == "eggs"
예제 #3
0
def test_getting_non_existent_query_parameters_causes_key_error():
    query = Query("foo=bar&spam=eggs")
    try:
        query.get("bacon")
    except KeyError:
        assert True
    else:
        assert False
예제 #4
0
def test_can_get_nth_parameter():
    query = Query("foo=bar&foo=baz&foo=qux&spam=eggs")
    assert query.get("foo", 0) == "bar"
    assert query.get("foo", 1) == "baz"
    assert query.get("foo", 2) == "qux"
    try:
        query.get("foo", 3)
    except IndexError:
        assert True
    else:
        assert False
예제 #5
0
def test_can_parse_key_value_query():
    query = Query("foo=bar")
    assert str(query) == "foo=bar"
    assert query.string == "foo=bar"
    assert dict(query) == {"foo": "bar"}
    assert query.get("foo") == "bar"
    assert len(query) == 1
    assert query.__bool__()
    assert query.__nonzero__()
예제 #6
0
def test_can_parse_key_only_query():
    query = Query("foo")
    assert str(query) == "foo"
    assert query.string == "foo"
    assert dict(query) == {"foo": None}
    assert query.get("foo") is None
    assert len(query) == 1
    assert query.__bool__()
    assert query.__nonzero__()