|
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" |
|
|