File: test_request.py

package info (click to toggle)
python-werkzeug 3.1.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,148 kB
  • sloc: python: 22,015; javascript: 292; makefile: 39; sh: 17; xml: 16
file content (31 lines) | stat: -rw-r--r-- 1,096 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import typing as t

import pytest

from werkzeug.datastructures import Headers
from werkzeug.sansio.request import Request


@pytest.mark.parametrize(
    "headers, expected",
    [
        (Headers({"Transfer-Encoding": "chunked", "Content-Length": "6"}), None),
        (Headers({"Transfer-Encoding": "something", "Content-Length": "6"}), 6),
        (Headers({"Content-Length": "6"}), 6),
        (Headers({"Content-Length": "-6"}), 0),
        (Headers({"Content-Length": "+123"}), 0),
        (Headers({"Content-Length": "1_23"}), 0),
        (Headers({"Content-Length": "🯱🯲🯳"}), 0),
        (Headers(), None),
    ],
)
def test_content_length(headers: Headers, expected: t.Optional[int]) -> None:
    req = Request("POST", "http", None, "", "", b"", headers, None)
    assert req.content_length == expected


def test_cookies() -> None:
    headers = Headers([("Cookie", "a=b"), ("Content-Type", "text"), ("Cookie", "a=c")])
    req = Request("GET", "http", None, "", "", b"", headers, None)
    assert req.cookies.get("a") == "b"
    assert req.cookies.getlist("a") == ["b", "c"]