From 3d2732a31c777a41a024be5f08dfc918f21dd269 Mon Sep 17 00:00:00 2001
From: David Schaefer <david.schaefer@ufz.de>
Date: Fri, 29 Nov 2019 17:39:13 +0100
Subject: [PATCH] added error handling test

---
 test/core/test_core.py | 28 +++++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/test/core/test_core.py b/test/core/test_core.py
index c8d1d2d06..a7d34c8b6 100644
--- a/test/core/test_core.py
+++ b/test/core/test_core.py
@@ -114,12 +114,11 @@ def test_missingConfig(data, flagger, flags):
 
 
 @pytest.mark.parametrize("flagger", TESTFLAGGER)
-def test_missingVariable(flagger):
+def test_missingVariable(data, flagger):
     """
     Test if variables available in the config but not dataset
     are handled correctly, i.e. are ignored
     """
-    data = initData(1)
     var, *_ = data.columns
 
     metadict = [
@@ -131,6 +130,30 @@ def test_missingVariable(flagger):
         runner(metafobj, flagger, data)
 
 
+@pytest.mark.parametrize("flagger", TESTFLAGGER)
+def test_errorHandling(data, flagger):
+
+    @register("raisingFunc")
+    def _raisingFunc(data, fielf, flagger, **kwargs):
+        raise TypeError
+
+    var1, *_ = data.columns
+
+    metadict = [
+        {F.VARNAME: var1, F.TESTS: "raisingFunc()"},
+    ]
+
+    tests = [
+        "ignore",
+        "warn"
+    ]
+
+    for policy in tests:
+        # NOTE: should not fail, that's all we are testing here
+        metafobj, _ = initMetaDict(metadict, data)
+        runner(metafobj, flagger, data, error_policy=policy)
+
+
 @pytest.mark.parametrize("flagger", TESTFLAGGER)
 def test_duplicatedVariable(flagger):
     data = initData(1)
@@ -152,7 +175,6 @@ def test_duplicatedVariable(flagger):
         assert (pflags.columns == [var1]).all()
 
 
-
 @pytest.mark.parametrize("flagger", TESTFLAGGER)
 def test_assignVariable(flagger):
     """
-- 
GitLab