aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/r_qtl/test_files/nonexistent.zipbin0 -> 380 bytes
-rw-r--r--tests/r_qtl/test_r_qtl2_nonexistent_file.py29
2 files changed, 29 insertions, 0 deletions
diff --git a/tests/r_qtl/test_files/nonexistent.zip b/tests/r_qtl/test_files/nonexistent.zip
new file mode 100644
index 0000000..4a31bf1
--- /dev/null
+++ b/tests/r_qtl/test_files/nonexistent.zip
Binary files differ
diff --git a/tests/r_qtl/test_r_qtl2_nonexistent_file.py b/tests/r_qtl/test_r_qtl2_nonexistent_file.py
new file mode 100644
index 0000000..c783a76
--- /dev/null
+++ b/tests/r_qtl/test_r_qtl2_nonexistent_file.py
@@ -0,0 +1,29 @@
+"""Test accessing nonexistent member."""
+from pathlib import Path
+
+import pytest
+from zipfile import ZipFile
+
+from r_qtl import r_qtl2 as rqtl2
+
+@pytest.mark.unit_test
+@pytest.mark.parametrize(
+ "filepath,memberkey",
+ (("tests/r_qtl/test_files/nonexistent.zip", "geno"),
+ ("tests/r_qtl/test_files/nonexistent.zip", "founder_geno"),
+ ("tests/r_qtl/test_files/nonexistent.zip", "pheno"),
+ ("tests/r_qtl/test_files/nonexistent.zip", "covar"),
+ ("tests/r_qtl/test_files/nonexistent.zip", "phenocovar"),
+ ("tests/r_qtl/test_files/nonexistent.zip", "gmap"),
+ ("tests/r_qtl/test_files/nonexistent.zip", "pmap")))
+def test_loading_nonexistent_file(filepath, memberkey):
+ """
+ GIVEN: A zipfile with a valid control file, but some files mentioned in the
+ control file do not exist in the zipfile
+ WHEN: access is made to such missing files
+ THEN: raise an exception
+ """
+ with (ZipFile(Path(filepath).absolute(), "r") as zfile,
+ pytest.raises(rqtl2.InvalidFormat)):
+ cdata = rqtl2.control_data(zfile)
+ tuple(rqtl2.file_data(zfile, memberkey, cdata))