(self)
| 212 | client.close() |
| 213 | |
| 214 | def test_copy_default_query(self) -> None: |
| 215 | client = OpenAI( |
| 216 | base_url=base_url, |
| 217 | api_key=api_key, |
| 218 | admin_api_key=admin_api_key, |
| 219 | _strict_response_validation=True, |
| 220 | default_query={class="st">"foo": class="st">"bar"}, |
| 221 | ) |
| 222 | assert _get_params(client)[class="st">"foo"] == class="st">"bar" |
| 223 | |
| 224 | class="cm"># does not override the already given value when not specified |
| 225 | copied = client.copy() |
| 226 | assert _get_params(copied)[class="st">"foo"] == class="st">"bar" |
| 227 | |
| 228 | class="cm"># merges already given params |
| 229 | copied = client.copy(default_query={class="st">"bar": class="st">"stainless"}) |
| 230 | params = _get_params(copied) |
| 231 | assert params[class="st">"foo"] == class="st">"bar" |
| 232 | assert params[class="st">"bar"] == class="st">"stainless" |
| 233 | |
| 234 | class="cm"># uses new values for any already given headers |
| 235 | copied = client.copy(default_query={class="st">"foo": class="st">"stainless"}) |
| 236 | assert _get_params(copied)[class="st">"foo"] == class="st">"stainless" |
| 237 | |
| 238 | class="cm"># set_default_query |
| 239 | |
| 240 | class="cm"># completely overrides already set values |
| 241 | copied = client.copy(set_default_query={}) |
| 242 | assert _get_params(copied) == {} |
| 243 | |
| 244 | copied = client.copy(set_default_query={class="st">"bar": class="st">"Robert"}) |
| 245 | assert _get_params(copied)[class="st">"bar"] == class="st">"Robert" |
| 246 | |
| 247 | with pytest.raises( |
| 248 | ValueError, |
| 249 | class="cm"># TODO: update |
| 250 | match=class="st">"`default_query` and `set_default_query` arguments are mutually exclusive", |
| 251 | ): |
| 252 | client.copy(set_default_query={}, default_query={class="st">"foo": class="st">"Bar"}) |
| 253 | |
| 254 | client.close() |
| 255 | |
| 256 | def test_copy_signature(self, client: OpenAI) -> None: |
| 257 | class="cm"># ensure the same parameters that can be passed to the client are defined in the `.copy()` method |
nothing calls this directly
no test coverage detected