diff --git a/src/acquisition/fluview/impute_missing_values.py b/src/acquisition/fluview/impute_missing_values.py index c795d9cce..3fc4b06e8 100644 --- a/src/acquisition/fluview/impute_missing_values.py +++ b/src/acquisition/fluview/impute_missing_values.py @@ -293,7 +293,11 @@ def impute_missing_values(database, test_mode=False): known_values["pr"] = (0, 0, 0) # get the imputation matrix and lists of known and unknown locations - F, known, unknown = get_fusion_parameters(known_values.keys()) + try: + F, known, unknown = get_fusion_parameters(known_values.keys()) + except StatespaceException as e: + print(e) + continue # finally, impute the missing values z = np.array([known_values[k] for k in known]) diff --git a/tests/acquisition/fluview/test_impute_missing_values.py b/tests/acquisition/fluview/test_impute_missing_values.py index 96338d467..328d262a1 100644 --- a/tests/acquisition/fluview/test_impute_missing_values.py +++ b/tests/acquisition/fluview/test_impute_missing_values.py @@ -2,8 +2,10 @@ # standard library import argparse +import sys import unittest from unittest.mock import MagicMock +from io import StringIO # first party from delphi.utils.geo.locations import Locations @@ -11,7 +13,6 @@ get_argument_parser, get_lag_and_ili, impute_missing_values, - StatespaceException, ) # py3tester coverage target @@ -87,8 +88,12 @@ def test_impute_missing_values_vipr(self): db.get_known_values.return_value = known_data db.find_missing_rows.return_value = [(201340, 201340)] - with self.assertRaises(Exception): - impute_missing_values(db, test_mode=True) + + capturedOutput = StringIO() + sys.stdout = capturedOutput + impute_missing_values(db, test_mode=True) + sys.stdout = sys.__stdout__ + self.assertTrue("system is underdetermined" in capturedOutput.getvalue().split("\n")) db.find_missing_rows.return_value = [(201339, 201339)] impute_missing_values(db, test_mode=True) @@ -131,5 +136,8 @@ def test_impute_missing_values_underdetermined(self): db.find_missing_rows.return_value = [(201740, 201740)] db.get_known_values.return_value = known_data - with self.assertRaises(StatespaceException): - impute_missing_values(db, test_mode=True) + capturedOutput = StringIO() + sys.stdout = capturedOutput + impute_missing_values(db, test_mode=True) + sys.stdout = sys.__stdout__ + self.assertTrue("system is underdetermined" in capturedOutput.getvalue().split("\n"))