diff --git a/openstef/data/dazls_stored.sav b/openstef/data/dazls_stored.sav index 52bb4e450..67298d09d 100644 Binary files a/openstef/data/dazls_stored.sav and b/openstef/data/dazls_stored.sav differ diff --git a/openstef/data/dazls_stored_3.2.49.sav b/openstef/data/dazls_stored_3.2.49.sav new file mode 100644 index 000000000..52bb4e450 Binary files /dev/null and b/openstef/data/dazls_stored_3.2.49.sav differ diff --git a/openstef/data/dazls_stored_3.2.49.sav.license b/openstef/data/dazls_stored_3.2.49.sav.license new file mode 100644 index 000000000..57abd4c9e --- /dev/null +++ b/openstef/data/dazls_stored_3.2.49.sav.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2017-2023 Contributors to the OpenSTEF project + +SPDX-License-Identifier: MPL-2.0 diff --git a/requirements.txt b/requirements.txt index 9a35444a6..71a1ef5b4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ plotly~=5.14 pvlib==0.9.4 pydantic~=1.10 pymsteams~=0.2.2 # TODO remove teams dependency -scikit-learn~=1.2 +scikit-learn~=1.3 scipy~=1.10 statsmodels~=0.13.5 structlog~=23.1 diff --git a/test/unit/pipeline/test_create_component_forecast.py b/test/unit/pipeline/test_create_component_forecast.py index 603103f30..f40b8bc83 100644 --- a/test/unit/pipeline/test_create_component_forecast.py +++ b/test/unit/pipeline/test_create_component_forecast.py @@ -2,12 +2,16 @@ # # SPDX-License-Identifier: MPL-2.0 from datetime import datetime, timedelta, timezone -import unittest from test.unit.utils.base import BaseTestCase from test.unit.utils.data import TestData +import joblib import pandas as pd +from pathlib import Path + +PROJECT_ROOT = Path(__file__).parent.parent.parent.parent.absolute() + from openstef.pipeline.create_component_forecast import ( create_components_forecast_pipeline, ) @@ -18,7 +22,18 @@ def setUp(self) -> None: super().setUp() self.PJ = TestData.get_prediction_job(pid=307) - @unittest.skip("Does work offline, but not online.") + def test_load_dazls_model(self): + """Version updates of sklearn could break pickle.load + Let's test for that explicitly + Assert that loading the old model generates an exception and the new model does not""" + + old_model_file = PROJECT_ROOT / "openstef/data/dazls_stored_3.2.49.sav" + new_model_file = PROJECT_ROOT / "openstef/data/dazls_stored.sav" + + self.assertRaises(Exception, joblib.load, old_model_file) + dazls_model = joblib.load(new_model_file) + assert dazls_model + def test_component_forecast_pipeline_happy_flow(self): # Test happy flow data = TestData.load("reference_sets/307-test-data.csv")