From 1c04a1caf2322362f614b97c9470ef3edd82a027 Mon Sep 17 00:00:00 2001 From: Juho Inkinen <34240031+juhoinkinen@users.noreply.github.com> Date: Thu, 11 Apr 2024 14:36:58 +0300 Subject: [PATCH] Add test for failed initialization of nn-ensemble model --- tests/test_backend_nn_ensemble.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/tests/test_backend_nn_ensemble.py b/tests/test_backend_nn_ensemble.py index b6e9c1ea7..9489fdf0f 100644 --- a/tests/test_backend_nn_ensemble.py +++ b/tests/test_backend_nn_ensemble.py @@ -2,13 +2,18 @@ import time from datetime import datetime, timedelta, timezone +from unittest import mock import py.path import pytest import annif.backend import annif.corpus -from annif.exception import NotInitializedException, NotSupportedException +from annif.exception import ( + NotInitializedException, + NotSupportedException, + OperationFailedException, +) pytest.importorskip("annif.backend.nn_ensemble") lmdb = pytest.importorskip("lmdb") @@ -192,6 +197,22 @@ def test_nn_ensemble_modification_time(app_project): assert datetime.now(timezone.utc) - nn_ensemble.modification_time < timedelta(1) +@mock.patch("annif.backend.nn_ensemble.load_model", side_effect=ValueError) +def test_nn_ensemble_initialize_error(load_model, app_project): + nn_ensemble_type = annif.backend.get_backend("nn_ensemble") + nn_ensemble = nn_ensemble_type( + backend_id="nn_ensemble", + config_params={"sources": "dummy-en"}, + project=app_project, + ) + assert nn_ensemble._model is None + with pytest.raises( + OperationFailedException, match=r"loading model from .*; model metadata: .*" + ): + nn_ensemble.initialize() + assert load_model.called + + def test_nn_ensemble_initialize(app_project): nn_ensemble_type = annif.backend.get_backend("nn_ensemble") nn_ensemble = nn_ensemble_type(