jfaustin's picture
add dockerfile and folding studio cli
44459bb
import pytest
from folding_studio.query import ProtenixQuery
def test_from_file(tmp_files):
"""Test from_file with a valid FASTA file."""
fasta_path = tmp_files["monomer_fasta"]
query = ProtenixQuery.from_file(fasta_path, use_msa_server=True, seed=0)
payload = query.payload
assert fasta_path.stem in payload["fasta_files"]
assert payload["use_msa_server"] is True
assert payload["seeds"] == "0"
def test_from_file_invalid_extension(tmp_files):
"""Test from_file with an invalid file extension."""
with pytest.raises(
ValueError,
match=f"Unsupported suffix '{tmp_files['invalid_source'].suffix}'",
):
ProtenixQuery.from_file(
tmp_files["invalid_source"], use_msa_server=True, seed=0
)
def test_from_directory(tmp_files):
"""Test from_directory with valid FASTA files."""
query = ProtenixQuery.from_directory(
tmp_files["valid_dir"], use_msa_server=False, seed=0
)
payload = query.payload
assert "monomer_1" in payload["fasta_files"]
assert "monomer_2" in payload["fasta_files"]
assert payload["use_msa_server"] is False
assert payload["seeds"] == "0"
def test_from_empty_fasta_directory(tmp_files):
"""Test from_directory with an empty directory."""
with pytest.raises(ValueError, match="No FASTA files found in directory"):
ProtenixQuery.from_directory(
tmp_files["empty_dir"], use_msa_server=False, seed=0
)
def test_from_directory_with_invalid_sources(tmp_files):
"""Test from_directory ignores invalid file extensions."""
with pytest.raises(ValueError, match="No FASTA files found in directory"):
ProtenixQuery.from_directory(
tmp_files["invalid_dir"], use_msa_server=False, seed=0
)
def test_from_file_with_msa_server(tmp_files):
"""Test from_file with a FASTA file."""
query = ProtenixQuery.from_file(
str(tmp_files["monomer_fasta"]),
use_msa_server=True,
seed=10,
)
payload = query.payload
assert tmp_files["monomer_fasta"].stem in payload["fasta_files"]
assert payload["use_msa_server"] is True
assert payload["seeds"] == "10"