mirror of
https://github.com/kennethreitz/responder.git
synced 2026-06-05 14:50:19 +00:00
b3c7252197
## About - Add Ruff configuration to `pyproject.toml`, apply its formatter, and satisfy its linter. - Migrate pytest configuration to `pyproject.toml`.
61 lines
1.5 KiB
Python
61 lines
1.5 KiB
Python
import inspect
|
|
|
|
import pytest
|
|
|
|
from responder import models
|
|
|
|
_default_query = "q=%7b%20hello%20%7d&name=myname&user_name=test_user"
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"query, expected",
|
|
[
|
|
pytest.param(
|
|
_default_query,
|
|
{"q": ["{ hello }"], "name": ["myname"], "user_name": ["test_user"]},
|
|
id="parse query with unique keys",
|
|
),
|
|
pytest.param(
|
|
"q=1&q=2&q=3", {"q": ["1", "2", "3"]}, id="parse query with the same key"
|
|
),
|
|
],
|
|
)
|
|
def test_query_dict(query, expected):
|
|
d = models.QueryDict(query)
|
|
assert d == expected
|
|
|
|
|
|
def test_query_dict_get():
|
|
d = models.QueryDict(_default_query)
|
|
|
|
assert d["user_name"] == "test_user"
|
|
assert d.get("key_none_exist") is None
|
|
|
|
|
|
def test_query_dict_get_list():
|
|
d = models.QueryDict(_default_query)
|
|
|
|
assert d.get_list("user_name") == ["test_user"]
|
|
assert d.get_list("key_none_exist") == []
|
|
assert d.get_list("key_none_exist", ["foo"]) == ["foo"]
|
|
|
|
|
|
def test_query_dict_items_list():
|
|
d = models.QueryDict(_default_query)
|
|
|
|
items_list = d.items_list()
|
|
assert inspect.isgenerator(items_list)
|
|
assert dict(items_list) == {
|
|
"q": ["{ hello }"],
|
|
"name": ["myname"],
|
|
"user_name": ["test_user"],
|
|
}
|
|
|
|
|
|
def test_query_dict_items():
|
|
d = models.QueryDict(_default_query)
|
|
|
|
items = d.items()
|
|
assert inspect.isgenerator(items)
|
|
assert dict(items) == {"q": "{ hello }", "name": "myname", "user_name": "test_user"}
|