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"
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"
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
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
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__()
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__()