deepseek-cursor-proxy/tests/test_trace.py

64 lines
2.2 KiB
Python

from __future__ import annotations
import json
import stat
from tempfile import TemporaryDirectory
import unittest
from deepseek_cursor_proxy.trace import TraceWriter
class TraceWriterTests(unittest.TestCase):
def test_writes_manifest_and_numbered_request_files(self) -> None:
with TemporaryDirectory() as temp_dir:
writer = TraceWriter(temp_dir)
first = writer.start_request(
method="POST",
path="/v1/chat/completions",
client_address="127.0.0.1",
headers={"User-Agent": "Cursor/1.0"},
)
second = writer.start_request(
method="POST",
path="/v1/chat/completions",
client_address="127.0.0.1",
headers={"User-Agent": "Cursor/1.0"},
)
first.finish("completed", http_status=200)
second.finish("completed", http_status=200)
self.assertTrue((writer.session_dir / "manifest.json").exists())
self.assertTrue((writer.session_dir / "request-000001.json").exists())
self.assertTrue((writer.session_dir / "request-000002.json").exists())
self.assertEqual(
stat.S_IMODE(
(writer.session_dir / "request-000001.json").stat().st_mode
),
0o600,
)
def test_authorization_header_is_redacted(self) -> None:
with TemporaryDirectory() as temp_dir:
writer = TraceWriter(temp_dir)
trace = writer.start_request(
method="POST",
path="/v1/chat/completions",
client_address="127.0.0.1",
headers={"Authorization": "Bearer sk-secret"},
)
trace.finish("completed", http_status=200)
payload = json.loads(trace.path.read_text(encoding="utf-8"))
serialized = json.dumps(payload)
self.assertNotIn("sk-secret", serialized)
self.assertEqual(
payload["request"]["headers"]["Authorization"]["present"],
True,
)
self.assertIn("sha256", payload["request"]["headers"]["Authorization"])
if __name__ == "__main__":
unittest.main()