|
"""Test simple msa.""" |
|
|
|
from pathlib import Path |
|
from unittest import mock |
|
|
|
import pytest |
|
from folding_studio.api_call.msa import simple_msa |
|
from folding_studio.config import API_URL, REQUEST_TIMEOUT |
|
from folding_studio.utils.data_model import MSARequestParams |
|
|
|
|
|
@pytest.fixture(autouse=True) |
|
def mock_post(): |
|
post_mock = mock.Mock() |
|
mock_response = mock.MagicMock() |
|
mock_response.ok = True |
|
post_mock.return_value = mock_response |
|
with mock.patch("requests.post", post_mock): |
|
yield post_mock |
|
|
|
|
|
@pytest.fixture(autouse=True) |
|
def mock_get_auth_headers(): |
|
with mock.patch( |
|
"folding_studio.api_call.msa.get_auth_headers", |
|
return_value={"Authorization": "Bearer identity_token"}, |
|
) as m: |
|
yield m |
|
|
|
|
|
def test_simple_msa_pass( |
|
tmp_path: Path, mock_post: pytest.FixtureRequest, headers: dict[str, str] |
|
): |
|
"""Test simple msa pass.""" |
|
|
|
file = tmp_path / "fasta_file.fasta" |
|
file.touch() |
|
|
|
params = MSARequestParams( |
|
ignore_cache=False, |
|
msa_mode="search", |
|
) |
|
|
|
simple_msa( |
|
file, |
|
params, |
|
project_code="FOLDING_DEV", |
|
) |
|
|
|
mock_post.assert_called_once_with( |
|
API_URL + "searchMSA", |
|
data=params.model_dump(mode="json"), |
|
headers=headers, |
|
files=mock.ANY, |
|
timeout=REQUEST_TIMEOUT, |
|
params={"project_code": "FOLDING_DEV"}, |
|
) |
|
|