(self)
| 446 | test_client2.close() |
| 447 | |
| 448 | def test_validate_headers(self) -> None: |
| 449 | client = OpenAI( |
| 450 | base_url=base_url, api_key=api_key, admin_api_key=admin_api_key, _strict_response_validation=True |
| 451 | ) |
| 452 | options = client._prepare_options(FinalRequestOptions(method="get", url="/foo")) |
| 453 | request = client._build_request(options) |
| 454 | |
| 455 | assert request.headers.get("Authorization") == f"Bearer {api_key}" |
| 456 | |
| 457 | admin_request = client._build_request( |
| 458 | FinalRequestOptions( |
| 459 | method="get", |
| 460 | url="/organization/projects", |
| 461 | security={"admin_api_key_auth": True}, |
| 462 | ) |
| 463 | ) |
| 464 | assert admin_request.headers.get("Authorization") == f"Bearer {admin_api_key}" |
| 465 | |
| 466 | with update_env(**{"OPENAI_API_KEY": Omit()}): |
| 467 | admin_only = OpenAI( |
| 468 | base_url=base_url, |
| 469 | api_key=None, |
| 470 | admin_api_key=admin_api_key, |
| 471 | _strict_response_validation=True, |
| 472 | ) |
| 473 | admin_only_request = admin_only._build_request( |
| 474 | FinalRequestOptions( |
| 475 | method="get", |
| 476 | url="/organization/projects", |
| 477 | security={"admin_api_key_auth": True}, |
| 478 | ) |
| 479 | ) |
| 480 | assert admin_only_request.headers.get("Authorization") == f"Bearer {admin_api_key}" |
| 481 | |
| 482 | with pytest.raises( |
| 483 | TypeError, |
| 484 | match="Could not resolve authentication method", |
| 485 | ): |
| 486 | admin_only._build_request( |
| 487 | FinalRequestOptions( |
| 488 | method="post", |
| 489 | url="/responses", |
| 490 | security={"bearer_auth": True}, |
| 491 | ) |
| 492 | ) |
| 493 | |
| 494 | with update_env( |
| 495 | **{ |
| 496 | "OPENAI_API_KEY": Omit(), |
| 497 | "OPENAI_ADMIN_KEY": Omit(), |
| 498 | } |
| 499 | ): |
| 500 | no_credentials = OpenAI( |
| 501 | base_url=base_url, |
| 502 | api_key=None, |
| 503 | admin_api_key=None, |
| 504 | _enforce_credentials=False, |
| 505 | _strict_response_validation=True, |
nothing calls this directly
no test coverage detected