11"""Unit tests for the nn_ensemble backend in Annif"""
22
3- import importlib
4- import os .path
53import time
64from datetime import datetime , timedelta , timezone
75from unittest import mock
@@ -193,44 +191,8 @@ def test_nn_ensemble_modification_time(app_project):
193191 assert datetime .now (timezone .utc ) - nn_ensemble .modification_time < timedelta (1 )
194192
195193
196- @pytest .mark .skip
197- def test_nn_ensemble_get_model_metadata (app_project ):
198- nn_ensemble_type = annif .backend .get_backend ("nn_ensemble" )
199- nn_ensemble = nn_ensemble_type (
200- backend_id = "nn_ensemble" ,
201- config_params = {"sources" : "dummy-en" },
202- project = app_project ,
203- )
204- model_filename = os .path .join (nn_ensemble .datadir , nn_ensemble .MODEL_FILE )
205-
206- expected_version = importlib .metadata .version ("torch" )
207- expected_date_saved = datetime .now (timezone .utc )
208- actual_metadata = nn_ensemble .get_model_metadata (model_filename )
209-
210- assert actual_metadata ["torch_version" ] == expected_version
211- datetime_format = "%Y-%m-%d@%H:%M:%S"
212- actual_datetime = datetime .strptime (actual_metadata ["date_saved" ], datetime_format )
213- assert expected_date_saved - actual_datetime .astimezone (
214- tz = timezone .utc
215- ) < timedelta (1 )
216-
217-
218- def test_nn_ensemble_get_model_metadata_nonexistent_file (app_project ):
219- nn_ensemble_type = annif .backend .get_backend ("nn_ensemble" )
220- nn_ensemble = nn_ensemble_type (
221- backend_id = "nn_ensemble" ,
222- config_params = {"sources" : "dummy-en" },
223- project = app_project ,
224- )
225- nonexistent_model_file = "nonexistent.zip"
226- model_filename = os .path .join (nn_ensemble .datadir , nonexistent_model_file )
227-
228- actual_metadata = nn_ensemble .get_model_metadata (model_filename )
229- assert actual_metadata is None
230-
231-
232- @mock .patch ("annif.backend.nn_ensemble.load_model" , side_effect = Exception )
233- def test_nn_ensemble_initialize_error (load_model , app_project ):
194+ @mock .patch ("annif.backend.nn_ensemble.NNEnsembleModel.load" , side_effect = Exception )
195+ def test_nn_ensemble_initialize_error (load , app_project ):
234196 nn_ensemble_type = annif .backend .get_backend ("nn_ensemble" )
235197 nn_ensemble = nn_ensemble_type (
236198 backend_id = "nn_ensemble" ,
@@ -240,10 +202,10 @@ def test_nn_ensemble_initialize_error(load_model, app_project):
240202 assert nn_ensemble ._model is None
241203 with pytest .raises (
242204 OperationFailedException ,
243- match = r"loading Keras model from .*; model metadata : .*" ,
205+ match = r"loading model from .*; original error message : .*" ,
244206 ):
245207 nn_ensemble .initialize ()
246- assert load_model .called
208+ assert load .called
247209
248210
249211def test_nn_ensemble_initialize (app_project ):
0 commit comments