File size: 2,051 Bytes
44459bb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
from pathlib import Path
from unittest import mock
import pytest
from folding_studio.cli import app
from folding_studio.config import API_URL, REQUEST_TIMEOUT
from typer.testing import CliRunner
from folding_studio.utils.headers import get_auth_headers
current_workdir = Path(__file__).parent.resolve()
data_dir = Path(current_workdir / "data")
runner = CliRunner()
@pytest.fixture(autouse=True)
def mock_get_auth_headers(request):
if "apikeytest" in request.keywords:
return_value = get_auth_headers(api_key="MY_KEY")
else:
return_value = {"Authorization": "Bearer identity_token"}
with mock.patch(
"folding_studio.commands.experiment.get_auth_headers", return_value=return_value
) as m:
yield m
@pytest.fixture()
def mock_request_get():
with mock.patch("requests.get") as m:
yield m
def test_experiment_status_pass(mock_request_get: mock.Mock, headers):
mock_response = mock.MagicMock()
mock_response.ok = True
mock_response.json.return_value = {"status": "Done."}
mock_request_get.return_value = mock_response
result = runner.invoke(app, ["experiment", "status", "ID"])
assert result.exit_code == 0
assert "Done." in result.stdout
mock_request_get.assert_called_once_with(
API_URL + "getExperimentStatus",
params={"experiment_id": "ID"},
headers=headers,
timeout=REQUEST_TIMEOUT,
)
def test_experiment_list_pass(mock_request_get: mock.Mock, tmp_files, headers):
mock_response = mock.MagicMock()
mock_response.ok = True
mock_response.json.return_value = {
"Done": ["exp_id_1", "exp_id_2"],
"Pending": ["exp_id_3"],
}
mock_request_get.return_value = mock_response
result = runner.invoke(
app, ["experiment", "list", "--output", str(tmp_files["metadata_file"])]
)
assert result.exit_code == 0
mock_request_get.assert_called_once_with(
API_URL + "getDoneAndPendingExperiments",
headers=headers,
timeout=REQUEST_TIMEOUT,
)
|