diff --git a/python_example/maketrees/python/maketrees/__init__.py b/python_example/maketrees/python/maketrees/__init__.py index 0b1333f..192f65e 100644 --- a/python_example/maketrees/python/maketrees/__init__.py +++ b/python_example/maketrees/python/maketrees/__init__.py @@ -1,6 +1,7 @@ import tskit from ._maketrees import maketrees +from ._maketrees import raise_error def make_treeseq_with_metadata() -> tskit.TreeSequence: diff --git a/python_example/maketrees/src/lib.rs b/python_example/maketrees/src/lib.rs index 9f59544..b5ef35d 100644 --- a/python_example/maketrees/src/lib.rs +++ b/python_example/maketrees/src/lib.rs @@ -64,4 +64,10 @@ mod maketrees { }; Ok(holder.into_python_tables(py)?) } + + #[pyfunction] + fn raise_error(py: Python<'_>) -> PyResult> { + let holder = tskit2tskit::SharedTableCollection::new(py, f64::NAN)?; + Ok(holder.into_python_tables(py)?) + } } diff --git a/python_example/maketrees/tests/test_maketrees.py b/python_example/maketrees/tests/test_maketrees.py index a71452f..f959eb2 100644 --- a/python_example/maketrees/tests/test_maketrees.py +++ b/python_example/maketrees/tests/test_maketrees.py @@ -21,3 +21,12 @@ def test_metadata(): ts = maketrees.make_treeseq_with_metadata() m = ts.mutation(0).metadata assert m['data'] == "I am a mutation" + + +def test_raise(): + try: + _ = maketrees.raise_error() + except RuntimeError: + pass + except _: + raise ValueError("expected RuntimeError")