def test_headers(): h = Headers(raw=[(b"a", b"123"), (b"a", b"456"), (b"b", b"789")]) assert "a" in h assert "A" in h assert "b" in h assert "B" in h assert "c" not in h assert h["a"] == "123" assert h.get("a") == "123" assert h.get("nope", default=None) is None assert h.getlist("a") == ["123", "456"] assert h.keys() == ["a", "a", "b"] assert h.values() == ["123", "456", "789"] assert h.items() == [("a", "123"), ("a", "456"), ("b", "789")] assert list(h) == ["a", "a", "b"] assert dict(h) == {"a": "123", "b": "789"} assert repr( h) == "Headers(raw=[(b'a', b'123'), (b'a', b'456'), (b'b', b'789')])" assert h == Headers(raw=[(b"a", b"123"), (b"b", b"789"), (b"a", b"456")]) assert h != [(b"a", b"123"), (b"A", b"456"), (b"b", b"789")] h = Headers({"a": "123", "b": "789"}) assert h["A"] == "123" assert h["B"] == "789" assert h.raw == [(b"a", b"123"), (b"b", b"789")] assert repr(h) == "Headers({'a': '123', 'b': '789'})"
def __init__(self, headers: Headers): super().__init__( status_code=304, headers={ name: value for name, value in headers.items() if name in self.NOT_MODIFIED_HEADERS }, )
async def __call__( self, scope: Scope, receive: Receive, send: Send, ) -> ASGIApp: if scope["type"] == "http": request = Request(scope=scope, receive=receive) headers = Headers(scope=scope) debug(f"{request.method} {request.url}") debug("Params:") for name, value in request.path_params.items(): debug(f"\t{name}: {value}") debug("Headers:") for name, value in headers.items(): debug(f"\t{name}: {value}") return await self.app(scope=scope, receive=receive, send=send)
def _create_headers_dictionary( self, headers: Headers) -> Mapping[str, List[str]]: headers_dict: Mapping[str, List[str]] = defaultdict(list) for (key, value) in headers.items(): headers_dict[key].append(value) return headers_dict