)
-def test_url():
+def test_url() -> None:
u = URL("https://example.org:123/path/to/somewhere?abc=123#anchor")
assert u.scheme == "https"
assert u.hostname == "example.org"
assert url.replace(port=88) == URL("http://u:p@host:88")
-def test_url_query_params():
+def test_url_query_params() -> None:
u = URL("https://example.org/path/?page=3")
assert u.query == "page=3"
u = u.include_query_params(page=4)
assert str(u) == "https://example.org/path/"
-def test_hidden_password():
+def test_hidden_password() -> None:
u = URL("https://example.org/path/to/somewhere")
assert repr(u) == "URL('https://example.org/path/to/somewhere')"
assert repr(u) == "URL('https://username:********@example.org/path/to/somewhere')"
-def test_csv():
+def test_csv() -> None:
csv = CommaSeparatedStrings('"localhost", "127.0.0.1", 0.0.0.0')
assert list(csv) == ["localhost", "127.0.0.1", "0.0.0.0"]
assert repr(csv) == "CommaSeparatedStrings(['localhost', '127.0.0.1', '0.0.0.0'])"
assert str(csv) == "'localhost', '127.0.0.1', '0.0.0.0'"
-def test_url_from_scope():
+def test_url_from_scope() -> None:
u = URL(
scope={"path": "/path/to/somewhere", "query_string": b"abc=123", "headers": []}
)
assert repr(u) == "URL('https://example.org/path/to/somewhere?abc=123')"
-def test_headers():
+def test_headers() -> None:
h = Headers(raw=[(b"a", b"123"), (b"a", b"456"), (b"b", b"789")])
assert "a" in h
assert "A" in h
assert repr(h) == "Headers({'a': '123', 'b': '789'})"
-def test_mutable_headers():
+def test_mutable_headers() -> None:
h = MutableHeaders()
assert dict(h) == {}
h["a"] = "1"
assert h.raw == [(b"b", b"4")]
-def test_mutable_headers_merge():
+def test_mutable_headers_merge() -> None:
h = MutableHeaders()
h = h | MutableHeaders({"a": "1"})
assert isinstance(h, MutableHeaders)
assert h.raw == [(b"a", b"1")]
-def test_mutable_headers_merge_dict():
+def test_mutable_headers_merge_dict() -> None:
h = MutableHeaders()
h = h | {"a": "1"}
assert isinstance(h, MutableHeaders)
assert h.raw == [(b"a", b"1")]
-def test_mutable_headers_update():
+def test_mutable_headers_update() -> None:
h = MutableHeaders()
h |= MutableHeaders({"a": "1"})
assert isinstance(h, MutableHeaders)
assert h.raw == [(b"a", b"1")]
-def test_mutable_headers_update_dict():
+def test_mutable_headers_update_dict() -> None:
h = MutableHeaders()
h |= {"a": "1"}
assert isinstance(h, MutableHeaders)
assert h.raw == [(b"a", b"1")]
-def test_mutable_headers_merge_not_mapping():
+def test_mutable_headers_merge_not_mapping() -> None:
h = MutableHeaders()
with pytest.raises(TypeError):
h |= {"not_mapping"} # type: ignore[arg-type]
h | {"not_mapping"} # type: ignore[operator]
-def test_headers_mutablecopy():
+def test_headers_mutablecopy() -> None:
h = Headers(raw=[(b"a", b"123"), (b"a", b"456"), (b"b", b"789")])
c = h.mutablecopy()
assert c.items() == [("a", "123"), ("a", "456"), ("b", "789")]
assert c.items() == [("a", "abc"), ("b", "789")]
-def test_mutable_headers_from_scope():
+def test_mutable_headers_from_scope() -> None:
# "headers" in scope must not necessarily be a list
h = MutableHeaders(scope={"headers": ((b"a", b"1"),)})
assert dict(h) == {"a": "1"}
assert list(h.raw) == [(b"a", b"1"), (b"b", b"2")]
-def test_url_blank_params():
+def test_url_blank_params() -> None:
q = QueryParams("a=123&abc&def&b=456")
assert "a" in q
assert "abc" in q
assert list(q.keys()) == ["a", "abc", "def", "b"]
-def test_queryparams():
+def test_queryparams() -> None:
q = QueryParams("a=123&a=456&b=789")
assert "a" in q
assert "A" not in q
@pytest.mark.anyio
-async def test_upload_file_file_input():
+async def test_upload_file_file_input() -> None:
"""Test passing file/stream into the UploadFile constructor"""
stream = io.BytesIO(b"data")
file = UploadFile(filename="file", file=stream, size=4)
@pytest.mark.anyio
-async def test_upload_file_without_size():
+async def test_upload_file_without_size() -> None:
"""Test passing file/stream into the UploadFile constructor without size"""
stream = io.BytesIO(b"data")
file = UploadFile(filename="file", file=stream)
await file.close()
-def test_formdata():
+def test_formdata() -> None:
stream = io.BytesIO(b"data")
upload = UploadFile(filename="file", file=stream, size=4)
form = FormData([("a", "123"), ("a", "456"), ("b", upload)])
@pytest.mark.anyio
-async def test_upload_file_repr():
+async def test_upload_file_repr() -> None:
stream = io.BytesIO(b"data")
file = UploadFile(filename="file", file=stream, size=4)
assert repr(file) == "UploadFile(filename='file', size=4, headers=Headers({}))"
@pytest.mark.anyio
-async def test_upload_file_repr_headers():
+async def test_upload_file_repr_headers() -> None:
stream = io.BytesIO(b"data")
file = UploadFile(filename="file", file=stream, headers=Headers({"foo": "bar"}))
assert (
)
-def test_multidict():
+def test_multidict() -> None:
q = MultiDict([("a", "123"), ("a", "456"), ("b", "789")])
assert "a" in q
assert "A" not in q