diff --git a/bio-research/skills/nextflow-development/scripts/tests/test_validators.py b/bio-research/skills/nextflow-development/scripts/tests/test_validators.py new file mode 100644 index 00000000..68faca92 --- /dev/null +++ b/bio-research/skills/nextflow-development/scripts/tests/test_validators.py @@ -0,0 +1,30 @@ +import sys +import unittest +from pathlib import Path + + +SCRIPTS_DIR = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SCRIPTS_DIR)) + +from utils.validators import load_pipeline_config, validate_samplesheet # noqa: E402 + + +class LoadPipelineConfigTest(unittest.TestCase): + def test_loads_known_pipeline_config(self): + config = load_pipeline_config("rnaseq") + + self.assertIsNotNone(config) + self.assertEqual(config["name"], "rnaseq") + self.assertIn("samplesheet", config) + + def test_unknown_pipeline_returns_none(self): + self.assertIsNone(load_pipeline_config("unknown-pipeline")) + + def test_validate_samplesheet_recognizes_known_pipeline(self): + result = validate_samplesheet([], "rnaseq") + + self.assertEqual(result.errors, ["Samplesheet is empty - no samples found"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/bio-research/skills/nextflow-development/scripts/utils/validators.py b/bio-research/skills/nextflow-development/scripts/utils/validators.py index 604d966e..d9f374e8 100644 --- a/bio-research/skills/nextflow-development/scripts/utils/validators.py +++ b/bio-research/skills/nextflow-development/scripts/utils/validators.py @@ -44,8 +44,8 @@ def summary(self) -> str: def load_pipeline_config(pipeline: str) -> Optional[Dict]: """Load pipeline configuration from YAML file.""" # Find config directory relative to this file - script_dir = Path(__file__).parent.parent.parent - config_path = script_dir / "config" / "pipelines" / f"{pipeline}.yaml" + scripts_dir = Path(__file__).parent.parent + config_path = scripts_dir / "config" / "pipelines" / f"{pipeline}.yaml" if not config_path.exists(): return None