# -*- coding: utf-8 -*- """Unit tests for the legacy pywebview desktop bridge.""" import io import types import urllib.request from pineagents.cli import desktop_cmd class _Response(io.BytesIO): def __enter__(self) -> "_Response": return self def __exit__(self, *_args: object) -> None: self.close() def test_save_file_passes_headers_to_download_request( monkeypatch, tmp_path, ) -> None: destination = tmp_path / "backup.zip" monkeypatch.setattr( desktop_cmd, "webview", types.SimpleNamespace( SAVE_DIALOG=1, windows=[ types.SimpleNamespace( create_file_dialog=lambda *_args, **_kwargs: str( destination, ), ), ], ), ) captured_url = "" captured_headers: dict[str, str] = {} def fake_urlopen(request: urllib.request.Request) -> _Response: nonlocal captured_headers, captured_url captured_url = request.full_url captured_headers = { key.lower(): value for key, value in request.header_items() } return _Response(b"zip") monkeypatch.setattr(urllib.request, "urlopen", fake_urlopen) saved = desktop_cmd.WebViewAPI().save_file( "http://127.0.0.1:43123/api/backups/abc/export", "backup.zip", {"Authorization": "Bearer tok", "X-Agent-Id": "agent-a"}, ) assert saved is True assert destination.read_bytes() == b"zip" assert captured_url == "http://127.0.0.1:43123/api/backups/abc/export" assert captured_headers["authorization"] == "Bearer tok" assert captured_headers["x-agent-id"] == "agent-a"