Files
xieyi-weixin-/test_packaging_ssl_data.py
T
2026-11-02 14:05:03 +08:00

38 lines
1.6 KiB
Python

"""The frozen interpreter must retain its certificate policy resource."""
import tempfile
from pathlib import Path
import unittest
from unittest.mock import patch
from packaging_native import python_ssl_data
class SSLResourceTests(unittest.TestCase):
def test_managed_runtime_policy_is_bundled_verbatim(self):
with tempfile.TemporaryDirectory() as directory:
source = Path(directory) / "ssl.py"
source.write_text("policy = 'codex-rejected-cas.pem'", encoding="utf-8")
policy = source.with_name("codex-rejected-cas.pem")
policy.write_bytes(b"public certificate policy fixture")
with patch("ssl.__file__", str(source)):
self.assertEqual(python_ssl_data(), [(str(policy), ".")])
self.assertEqual(policy.read_bytes(), b"public certificate policy fixture")
def test_missing_required_policy_stops_build(self):
with tempfile.TemporaryDirectory() as directory:
source = Path(directory) / "ssl.py"
source.write_text("policy = 'codex-rejected-cas.pem'", encoding="utf-8")
with patch("ssl.__file__", str(source)), self.assertRaisesRegex(RuntimeError, "missing"):
python_ssl_data()
def test_standard_python_needs_no_extra_resource(self):
with tempfile.TemporaryDirectory() as directory:
source = Path(directory) / "ssl.py"
source.write_text("# Standard SSL module", encoding="utf-8")
with patch("ssl.__file__", str(source)):
self.assertEqual(python_ssl_data(), [])
if __name__ == "__main__":
unittest.main()