Mercurial > repos > padge > clipkit
diff clipkit_repo/tests/unit/test_files.py @ 0:49b058e85902 draft
"planemo upload for repository https://github.com/jlsteenwyk/clipkit commit cbe1e8577ecb1a46709034a40dff36052e876e7a-dirty"
author | padge |
---|---|
date | Fri, 25 Mar 2022 13:04:31 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clipkit_repo/tests/unit/test_files.py Fri Mar 25 13:04:31 2022 +0000 @@ -0,0 +1,51 @@ +import pytest +from pathlib import Path + +from Bio import AlignIO +from clipkit.files import get_alignment_and_format, FileFormat + +here = Path(__file__) + + +class TestAutomaticFileTypeDetermination(object): + def test_get_alignment_and_format_when_format_is_provided(self): + # setup + in_file = f"{here.parent}/examples/simple.fa" + file_format = 'fasta' + + # execution + alignment, in_file_format = get_alignment_and_format(in_file, file_format) + + # check results + assert in_file_format == FileFormat.fasta + assert alignment.get_alignment_length() == 6 + + def test_get_alignment_and_format_when_format_is_not_provided(self): + # setup + in_file = f"{here.parent}/examples/simple.fa" + file_format = None + + # execution + alignment, in_file_format = get_alignment_and_format(in_file, file_format) + + # check results + assert in_file_format == FileFormat.fasta + assert alignment.get_alignment_length() == 6 + + def test_get_alignment_and_format_raises_error_when_file_not_known(self, mocker): + in_file = "" + file_format = None + mocker.patch("clipkit.files.AlignIO.read", side_effect=ValueError()) + + with pytest.raises(Exception) as excinfo: + get_alignment_and_format(in_file, file_format) + assert "No such file or directory" in str(excinfo.value) + + def test_get_alignment_and_format_raises_error_when_detection_fails(self, mocker): + in_file = f"{here.parent}/examples/simple.fa" + file_format = None + mocker.patch("clipkit.files.AlignIO.read", side_effect=ValueError()) + + with pytest.raises(Exception) as excinfo: + get_alignment_and_format(in_file, file_format) + assert "Input file could not be read" in str(excinfo.value)