# # Copyright 2025 Alibaba Group Holding Ltd. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import pytest from opensandbox.config import ConnectionConfig from opensandbox.models.sandboxes import SandboxEndpoint from code_interpreter.adapters.code_adapter import CodesAdapter @pytest.mark.asyncio async def test_code_service_eager_init_and_client_available() -> None: cfg = ConnectionConfig(protocol="http") endpoint = SandboxEndpoint(endpoint="localhost:44772", port=44772) adapter = CodesAdapter(endpoint, cfg) client = await adapter._get_client() assert client is not None @pytest.mark.asyncio async def test_code_service_eager_init_merges_endpoint_headers() -> None: cfg = ConnectionConfig( protocol="http", headers={"X-Base": "base", "X-Shared": "base"} ) endpoint = SandboxEndpoint( endpoint="localhost:44772", port=44772, headers={"X-Endpoint": "endpoint", "X-Shared": "endpoint"}, ) adapter = CodesAdapter(endpoint, cfg) client = await adapter._get_client() httpx_client = client.get_async_httpx_client() assert httpx_client.headers["X-Base"] == "base" assert httpx_client.headers["X-Endpoint"] == "endpoint" assert httpx_client.headers["X-Shared"] == "endpoint"