from __future__ import annotations import ssl import certifi import pytest from cibuildwheel.util import download DOWNLOAD_URL = "https://raw.githubusercontent.com/pypa/cibuildwheel/v1.6.3/requirements-dev.txt" def test_download(monkeypatch, tmp_path): monkeypatch.delenv("SSL_CERT_FILE", raising=False) dest = tmp_path / "file.txt" download(DOWNLOAD_URL, dest) assert len(dest.read_bytes()) == 134 def test_download_good_ssl_cert_file(monkeypatch, tmp_path): monkeypatch.setenv("SSL_CERT_FILE", certifi.where()) dest = tmp_path / "file.txt" download(DOWNLOAD_URL, dest) assert len(dest.read_bytes()) == 134 def test_download_bad_ssl_cert_file(monkeypatch, tmp_path): bad_cafile = tmp_path / "ca.pem" bad_cafile.write_text("bad certificates") monkeypatch.setenv("SSL_CERT_FILE", str(bad_cafile)) dest = tmp_path / "file.txt" with pytest.raises(ssl.SSLError): download(DOWNLOAD_URL, dest)