mirror of
https://github.com/ollama/ollama-python.git
synced 2026-05-03 12:52:35 +00:00
client: load OLLAMA_API_KEY on init (#583)
This commit is contained in:
@@ -1195,3 +1195,83 @@ async def test_arbitrary_roles_accepted_in_message_request_async(monkeypatch: py
|
||||
client = AsyncClient()
|
||||
|
||||
await client.chat(model='llama3.1', messages=[{'role': 'somerandomrole', 'content': "I'm ok with you adding any role message now!"}, {'role': 'user', 'content': 'Hello world!'}])
|
||||
|
||||
|
||||
def test_client_web_search_requires_bearer_auth_header(monkeypatch: pytest.MonkeyPatch):
|
||||
monkeypatch.delenv('OLLAMA_API_KEY', raising=False)
|
||||
|
||||
client = Client()
|
||||
|
||||
with pytest.raises(ValueError, match='Authorization header with Bearer token is required for web search'):
|
||||
client.web_search(['test query'])
|
||||
|
||||
|
||||
def test_client_web_crawl_requires_bearer_auth_header(monkeypatch: pytest.MonkeyPatch):
|
||||
monkeypatch.delenv('OLLAMA_API_KEY', raising=False)
|
||||
|
||||
client = Client()
|
||||
|
||||
with pytest.raises(ValueError, match='Authorization header with Bearer token is required for web fetch'):
|
||||
client.web_crawl(['https://example.com'])
|
||||
|
||||
|
||||
def _mock_request_web_search(self, cls, method, url, json=None, **kwargs):
|
||||
assert method == 'POST'
|
||||
assert url == 'https://ollama.com/api/web_search'
|
||||
assert json is not None and 'queries' in json and 'max_results' in json
|
||||
return httpxResponse(status_code=200, content='{"results": {}, "success": true}')
|
||||
|
||||
|
||||
def _mock_request_web_crawl(self, cls, method, url, json=None, **kwargs):
|
||||
assert method == 'POST'
|
||||
assert url == 'https://ollama.com/api/web_crawl'
|
||||
assert json is not None and 'urls' in json
|
||||
return httpxResponse(status_code=200, content='{"results": {}, "success": true}')
|
||||
|
||||
|
||||
def test_client_web_search_with_env_api_key(monkeypatch: pytest.MonkeyPatch):
|
||||
monkeypatch.setenv('OLLAMA_API_KEY', 'test-key')
|
||||
monkeypatch.setattr(Client, '_request', _mock_request_web_search)
|
||||
|
||||
client = Client()
|
||||
client.web_search(['what is ollama?'], max_results=2)
|
||||
|
||||
|
||||
def test_client_web_crawl_with_env_api_key(monkeypatch: pytest.MonkeyPatch):
|
||||
monkeypatch.setenv('OLLAMA_API_KEY', 'test-key')
|
||||
monkeypatch.setattr(Client, '_request', _mock_request_web_crawl)
|
||||
|
||||
client = Client()
|
||||
client.web_crawl(['https://example.com'])
|
||||
|
||||
|
||||
def test_client_web_search_with_explicit_bearer_header(monkeypatch: pytest.MonkeyPatch):
|
||||
monkeypatch.delenv('OLLAMA_API_KEY', raising=False)
|
||||
monkeypatch.setattr(Client, '_request', _mock_request_web_search)
|
||||
|
||||
client = Client(headers={'Authorization': 'Bearer custom-token'})
|
||||
client.web_search(['what is ollama?'], max_results=1)
|
||||
|
||||
|
||||
def test_client_web_crawl_with_explicit_bearer_header(monkeypatch: pytest.MonkeyPatch):
|
||||
monkeypatch.delenv('OLLAMA_API_KEY', raising=False)
|
||||
monkeypatch.setattr(Client, '_request', _mock_request_web_crawl)
|
||||
|
||||
client = Client(headers={'Authorization': 'Bearer custom-token'})
|
||||
client.web_crawl(['https://example.com'])
|
||||
|
||||
|
||||
def test_client_bearer_header_from_env(monkeypatch: pytest.MonkeyPatch):
|
||||
monkeypatch.setenv('OLLAMA_API_KEY', 'env-token')
|
||||
|
||||
client = Client()
|
||||
assert client._client.headers['authorization'] == 'Bearer env-token'
|
||||
|
||||
|
||||
def test_client_explicit_bearer_header_overrides_env(monkeypatch: pytest.MonkeyPatch):
|
||||
monkeypatch.setenv('OLLAMA_API_KEY', 'env-token')
|
||||
monkeypatch.setattr(Client, '_request', _mock_request_web_search)
|
||||
|
||||
client = Client(headers={'Authorization': 'Bearer explicit-token'})
|
||||
assert client._client.headers['authorization'] == 'Bearer explicit-token'
|
||||
client.web_search(['override check'])
|
||||
|
||||
Reference in New Issue
Block a user