52 lines
1.6 KiB
Python
Executable File
52 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""Domain Analysis Skill 测试"""
|
|
|
|
import tempfile
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
import sys
|
|
sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
|
|
from run import DomainSkill
|
|
|
|
|
|
class TestDomainSkill(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.skill = DomainSkill()
|
|
self.temp_dir = Path(tempfile.mkdtemp())
|
|
|
|
def tearDown(self):
|
|
import shutil
|
|
shutil.rmtree(self.temp_dir, ignore_errors=True)
|
|
|
|
def test_demo_mode(self):
|
|
"""测试Demo模式"""
|
|
result = self.skill.run_demo(self.temp_dir)
|
|
|
|
self.assertEqual(result["status"], "success")
|
|
self.assertIn("output_dir", result)
|
|
self.assertIn("report", result)
|
|
|
|
# 检查输出文件
|
|
output_dir = Path(result["output_dir"])
|
|
self.assertTrue((output_dir / "report.md").exists())
|
|
self.assertTrue((output_dir / "commands.sh").exists())
|
|
self.assertTrue((output_dir / "environment.yml").exists())
|
|
self.assertTrue((output_dir / "checksums.sha256").exists())
|
|
self.assertTrue((output_dir / "domain_scan.pfam.domtblout").exists())
|
|
self.assertTrue((output_dir / "domain_scan.pfam.tblout").exists())
|
|
|
|
def test_config_loading(self):
|
|
"""测试配置加载"""
|
|
config = self.skill.config
|
|
|
|
self.assertIn("skill", config)
|
|
self.assertIn("parameters", config)
|
|
self.assertEqual(config["skill"]["name"], "domain-analysis")
|
|
self.assertIn("hmmscan", config["parameters"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main() |