feat(crispr): implement CRISPR-Cas detection and fusion analysis module
This commit is contained in:
42
crispr_cas/tests/test_detect_crispr.py
Normal file
42
crispr_cas/tests/test_detect_crispr.py
Normal file
@@ -0,0 +1,42 @@
|
||||
import pytest
|
||||
import json
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
from crispr_cas.scripts.detect_crispr import generate_mock_results
|
||||
|
||||
def test_generate_mock_results(tmp_path):
|
||||
"""Test mock result generation"""
|
||||
input_file = tmp_path / "test_genome.fna"
|
||||
input_file.touch()
|
||||
|
||||
results = generate_mock_results(input_file)
|
||||
|
||||
assert results["strain_id"] == "test_genome"
|
||||
assert "cas_systems" in results
|
||||
assert "arrays" in results
|
||||
assert results["summary"]["has_cas"] is True
|
||||
assert len(results["arrays"]) > 0
|
||||
|
||||
def test_script_execution(tmp_path):
|
||||
"""Test full script execution via subprocess"""
|
||||
# Create dummy input
|
||||
input_file = tmp_path / "genome.fna"
|
||||
input_file.touch()
|
||||
output_file = tmp_path / "results.json"
|
||||
script_path = Path("crispr_cas/scripts/detect_crispr.py").absolute()
|
||||
|
||||
import subprocess
|
||||
cmd = [
|
||||
"python3", str(script_path),
|
||||
"--input", str(input_file),
|
||||
"--output", str(output_file),
|
||||
"--mock"
|
||||
]
|
||||
|
||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||
assert result.returncode == 0
|
||||
assert output_file.exists()
|
||||
|
||||
with open(output_file) as f:
|
||||
data = json.load(f)
|
||||
assert data["strain_id"] == "genome"
|
||||
Reference in New Issue
Block a user