2023-12-05 19:49:55 +00:00
|
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
|
2023-12-03 23:11:43 +00:00
|
|
|
from langchain_core.pydantic_v1 import SecretStr
|
|
|
|
from pytest import CaptureFixture, MonkeyPatch
|
|
|
|
|
2023-12-11 21:53:30 +00:00
|
|
|
from langchain_community.llms.arcee import Arcee
|
2023-12-03 23:11:43 +00:00
|
|
|
|
|
|
|
|
2024-01-03 07:18:15 +00:00
|
|
|
@patch("langchain_community.utilities.arcee.requests.get")
|
2023-12-05 19:49:55 +00:00
|
|
|
def test_arcee_api_key_is_secret_string(mock_get: MagicMock) -> None:
|
|
|
|
mock_response = mock_get.return_value
|
|
|
|
mock_response.status_code = 200
|
|
|
|
mock_response.json.return_value = {
|
|
|
|
"model_id": "",
|
|
|
|
"status": "training_complete",
|
|
|
|
}
|
2023-12-03 23:11:43 +00:00
|
|
|
|
2023-12-05 19:49:55 +00:00
|
|
|
arcee_without_env_var = Arcee(
|
|
|
|
model="DALM-PubMed",
|
|
|
|
arcee_api_key="secret_api_key",
|
|
|
|
arcee_api_url="https://localhost",
|
|
|
|
arcee_api_version="version",
|
|
|
|
)
|
|
|
|
assert isinstance(arcee_without_env_var.arcee_api_key, SecretStr)
|
2023-12-03 23:11:43 +00:00
|
|
|
|
|
|
|
|
2024-01-03 07:18:15 +00:00
|
|
|
@patch("langchain_community.utilities.arcee.requests.get")
|
2023-12-05 19:49:55 +00:00
|
|
|
def test_api_key_masked_when_passed_via_constructor(
|
|
|
|
mock_get: MagicMock, capsys: CaptureFixture
|
|
|
|
) -> None:
|
|
|
|
mock_response = mock_get.return_value
|
|
|
|
mock_response.status_code = 200
|
|
|
|
mock_response.json.return_value = {
|
|
|
|
"model_id": "",
|
|
|
|
"status": "training_complete",
|
|
|
|
}
|
2023-12-03 23:11:43 +00:00
|
|
|
|
2023-12-05 19:49:55 +00:00
|
|
|
arcee_without_env_var = Arcee(
|
|
|
|
model="DALM-PubMed",
|
|
|
|
arcee_api_key="secret_api_key",
|
|
|
|
arcee_api_url="https://localhost",
|
|
|
|
arcee_api_version="version",
|
|
|
|
)
|
2024-02-10 00:13:30 +00:00
|
|
|
print(arcee_without_env_var.arcee_api_key, end="") # noqa: T201
|
2023-12-03 23:11:43 +00:00
|
|
|
captured = capsys.readouterr()
|
|
|
|
|
2023-12-05 19:49:55 +00:00
|
|
|
assert "**********" == captured.out
|
2023-12-03 23:11:43 +00:00
|
|
|
|
2023-12-05 19:49:55 +00:00
|
|
|
|
2024-01-03 07:18:15 +00:00
|
|
|
@patch("langchain_community.utilities.arcee.requests.get")
|
2023-12-05 19:49:55 +00:00
|
|
|
def test_api_key_masked_when_passed_from_env(
|
|
|
|
mock_get: MagicMock, capsys: CaptureFixture, monkeypatch: MonkeyPatch
|
2023-12-03 23:11:43 +00:00
|
|
|
) -> None:
|
2023-12-05 19:49:55 +00:00
|
|
|
mock_response = mock_get.return_value
|
|
|
|
mock_response.status_code = 200
|
|
|
|
mock_response.json.return_value = {
|
|
|
|
"model_id": "",
|
|
|
|
"status": "training_complete",
|
|
|
|
}
|
2023-12-03 23:11:43 +00:00
|
|
|
|
2023-12-05 19:49:55 +00:00
|
|
|
monkeypatch.setenv("ARCEE_API_KEY", "secret_api_key")
|
|
|
|
arcee_with_env_var = Arcee(
|
|
|
|
model="DALM-PubMed",
|
|
|
|
arcee_api_url="https://localhost",
|
|
|
|
arcee_api_version="version",
|
|
|
|
)
|
2024-02-10 00:13:30 +00:00
|
|
|
print(arcee_with_env_var.arcee_api_key, end="") # noqa: T201
|
2023-12-03 23:11:43 +00:00
|
|
|
captured = capsys.readouterr()
|
2023-12-05 19:49:55 +00:00
|
|
|
|
|
|
|
assert "**********" == captured.out
|