MCPcopy Create free account
hub / github.com/anomalyco/opencode-sdk-python / TestOpencode

Class TestOpencode

tests/test_client.py:61–829  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59
60
61class TestOpencode:
62 client = Opencode(base_url=base_url, _strict_response_validation=True)
63
64 @pytest.mark.respx(base_url=base_url)
65 def test_raw_response(self, respx_mock: MockRouter) -> None:
66 respx_mock.post("/foo").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
67
68 response = self.client.post("/foo", cast_to=httpx.Response)
69 assert response.status_code == 200
70 assert isinstance(response, httpx.Response)
71 assert response.json() == {"foo": "bar"}
72
73 @pytest.mark.respx(base_url=base_url)
74 def test_raw_response_for_binary(self, respx_mock: MockRouter) -> None:
75 respx_mock.post("/foo").mock(
76 return_value=httpx.Response(200, headers={"Content-Type": "application/binary"}, content='{"foo": "bar"}')
77 )
78
79 response = self.client.post("/foo", cast_to=httpx.Response)
80 assert response.status_code == 200
81 assert isinstance(response, httpx.Response)
82 assert response.json() == {"foo": "bar"}
83
84 def test_copy(self) -> None:
85 copied = self.client.copy()
86 assert id(copied) != id(self.client)
87
88 def test_copy_default_options(self) -> None:
89 # options that have a default are overridden correctly
90 copied = self.client.copy(max_retries=7)
91 assert copied.max_retries == 7
92 assert self.client.max_retries == 2
93
94 copied2 = copied.copy(max_retries=6)
95 assert copied2.max_retries == 6
96 assert copied.max_retries == 7
97
98 # timeout
99 assert isinstance(self.client.timeout, httpx.Timeout)
100 copied = self.client.copy(timeout=None)
101 assert copied.timeout is None
102 assert isinstance(self.client.timeout, httpx.Timeout)
103
104 def test_copy_default_headers(self) -> None:
105 client = Opencode(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"})
106 assert client.default_headers["X-Foo"] == "bar"
107
108 # does not override the already given value when not specified
109 copied = client.copy()
110 assert copied.default_headers["X-Foo"] == "bar"
111
112 # merges already given headers
113 copied = client.copy(default_headers={"X-Bar": "stainless"})
114 assert copied.default_headers["X-Foo"] == "bar"
115 assert copied.default_headers["X-Bar"] == "stainless"
116
117 # uses new values for any already given headers
118 copied = client.copy(default_headers={"X-Foo": "stainless"})

Callers

nothing calls this directly

Calls 1

OpencodeClass · 0.90

Tested by

no test coverage detected