File: test_compatibility.py

package info (click to toggle)
python-urllib3 2.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,340 kB
  • sloc: python: 26,167; makefile: 122; javascript: 92; sh: 11
file content (48 lines) | stat: -rw-r--r-- 1,521 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from __future__ import annotations

import http.cookiejar
import urllib
from unittest import mock

import pytest

import urllib3.http2
from urllib3.response import HTTPResponse


class TestCookiejar:
    def test_extract(self) -> None:
        request = urllib.request.Request("http://google.com")
        cookiejar = http.cookiejar.CookieJar()
        response = HTTPResponse()

        cookies = [
            "sessionhash=abcabcabcabcab; path=/; HttpOnly",
            "lastvisit=1348253375; expires=Sat, 21-Sep-2050 18:49:35 GMT; path=/",
        ]
        for c in cookies:
            response.headers.add("set-cookie", c)
        cookiejar.extract_cookies(response, request)  # type: ignore[arg-type]
        assert len(cookiejar) == len(cookies)


class TestInitialization:
    @mock.patch("urllib3.http2.version")
    def test_h2_version_check(self, mock_version: mock.MagicMock) -> None:
        try:
            mock_version.return_value = "4.1.0"
            urllib3.http2.inject_into_urllib3()

            mock_version.return_value = "3.9.9"
            with pytest.raises(
                ImportError, match="urllib3 v2 supports h2 version 4.x.x.*"
            ):
                urllib3.http2.inject_into_urllib3()

            mock_version.return_value = "5.0.0"
            with pytest.raises(
                ImportError, match="urllib3 v2 supports h2 version 4.x.x.*"
            ):
                urllib3.http2.inject_into_urllib3()
        finally:
            urllib3.http2.extract_from_urllib3()