(selenium_coverage, host: str, port: int, prefer_jspi: bool)
| 33 | ) -> None: |
| 34 | @run_in_pyodide # type: ignore[untyped-decorator] |
| 35 | def pyodide_test(selenium_coverage, host: str, port: int, prefer_jspi: bool) -> None: # type: ignore[no-untyped-def] |
| 36 | import urllib3.contrib.emscripten.fetch |
| 37 | from urllib3.connection import HTTPConnection |
| 38 | from urllib3.response import BaseHTTPResponse |
| 39 | |
| 40 | assert urllib3.contrib.emscripten.fetch.has_jspi() == prefer_jspi |
| 41 | conn = HTTPConnection(host, port) |
| 42 | url = f"http://{host}:{port}/" |
| 43 | conn.request("GET", url) |
| 44 | response = conn.getresponse() |
| 45 | # check methods of response |
| 46 | assert isinstance(response, BaseHTTPResponse) |
| 47 | assert response.url == url |
| 48 | response.url = "http://woo" |
| 49 | assert response.url == "http://woo" |
| 50 | assert response.connection == conn |
| 51 | assert response.retries is None |
| 52 | data1 = response.data |
| 53 | decoded1 = data1.decode("utf-8") |
| 54 | data2 = response.data # check that getting data twice works |
| 55 | decoded2 = data2.decode("utf-8") |
| 56 | assert decoded1 == decoded2 == "Dummy server!" |
| 57 | |
| 58 | pyodide_test( |
| 59 | selenium_coverage, |
no test coverage detected