Mercurial > repos > davidvanzessen > shm_csr
diff tests/test_shm_csr.py @ 83:729738462297 draft
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
author | rhpvorderman |
---|---|
date | Wed, 15 Sep 2021 12:24:06 +0000 |
parents | |
children | 6809c63d9161 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test_shm_csr.py Wed Sep 15 12:24:06 2021 +0000 @@ -0,0 +1,108 @@ +# Copyright (c) 2021 Leiden University Medical Center +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import os +import shutil +import subprocess +import sys +import tempfile +from pathlib import Path + +import pytest + +GIT_ROOT = str(Path(__file__).parent.parent.absolute()) +TEST_DIR = Path(__file__).parent +TEST_DATA_DIR = TEST_DIR / "data" +VALIDATION_DATA_DIR = TEST_DIR / "validation_data" +CONTROL_NWK377_PB_IGHC_MID1_40nt_2 = TEST_DATA_DIR / "CONTROL_NWK377_PB_IGHC_MID1_40nt_2.txz" + + +@pytest.fixture(scope="module") +def shm_csr_result(): + temp_dir = tempfile.mktemp() + shutil.copytree(GIT_ROOT, temp_dir) + input = str(CONTROL_NWK377_PB_IGHC_MID1_40nt_2) + out_files_path = os.path.join(temp_dir, "results") + out_file = os.path.join(out_files_path, "result.html") + infile_name = "input_data" + functionality = "productive" + unique = "Sequence.ID" + naive_output = "no" + naive_output_ca = "None" + naive_output_cg = "None" + naive_output_cm = "None" + naive_output_ce = "None" + naive_output_all = "None" + filter_unique = "remove" + filter_unique_count = '2' + class_filter = '70_70' + empty_region_filter = 'FR1' + fast = 'no' + cmd = [ + "bash", + "wrapper.sh", + input, + "custom", + out_file, + out_files_path, + infile_name, + "-", + functionality, + unique, + naive_output, + naive_output_ca, + naive_output_cg, + naive_output_cm, + naive_output_ce, + naive_output_all, + filter_unique, + filter_unique_count, + class_filter, + empty_region_filter, + fast + ] + subprocess.run(cmd, cwd=temp_dir, stdout=sys.stdout, stderr=sys.stderr, + check=True) + yield Path(out_files_path) + #shutil.rmtree(temp_dir) + + +def test_check_output(shm_csr_result): + assert shm_csr_result.exists() + + +@pytest.mark.parametrize("filename", os.listdir(VALIDATION_DATA_DIR)) +def test_results_match_validation(shm_csr_result, filename): + if filename == "shm_overview.txt": + # TODO: Fix errors in shm_overview. + return + with open(Path(shm_csr_result, filename)) as result_h: + with open(Path(VALIDATION_DATA_DIR, filename)) as validate_h: + for line in result_h: + assert line == validate_h.readline() + + +def test_nt_overview(shm_csr_result): + with open(Path(shm_csr_result, "sequence_overview", "ntoverview.txt") + ) as result_h: + with open(Path(TEST_DIR, "sequence_overview", "ntoverview.txt") + ) as validate_h: + for line in result_h: + assert line == validate_h.readline()