Coverage for tests / tests_registers / test_load_register.py: 95%
20 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-09 16:40 +0100
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-09 16:40 +0100
1# SPDX-FileCopyrightText: Copyright INRIA
2#
3# SPDX-License-Identifier: LGPL-3.0-only
4#
5# Copyright INRIA
6#
7# This file is part of PhysioBlocks, a library mostly developed by the
8# [Ananke project-team](https://team.inria.fr/ananke) at INRIA.
9#
10# Authors:
11# - Colin Drieu
12# - Dominique Chapelle
13# - François Kimmig
14# - Philippe Moireau
15#
16# PhysioBlocks is free software: you can redistribute it and/or modify it under the
17# terms of the GNU Lesser General Public License as published by the Free Software
18# Foundation, version 3 of the License.
19#
20# PhysioBlocks is distributed in the hope that it will be useful, but WITHOUT ANY
21# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
22# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
23#
24# You should have received a copy of the GNU Lesser General Public License along with
25# PhysioBlocks. If not, see <https://www.gnu.org/licenses/>.
27from unittest.mock import patch
29import pytest
31import physioblocks.registers.load_function_register as load_reg
32from physioblocks.registers.load_function_register import (
33 get_load_function,
34 loads,
35)
38class ClassA:
39 pass
42class ClassB(ClassA):
43 pass
46@patch(
47 "physioblocks.registers.type_register.__type_register",
48 new={
49 ClassA.__name__: ClassA,
50 ClassA: ClassA.__name__,
51 ClassB.__name__: ClassB,
52 ClassB: ClassB.__name__,
53 },
54)
55def test_load_function_register():
56 @loads(ClassA)
57 def load_func():
58 pass
60 assert get_load_function(ClassA) == load_func
61 assert get_load_function(ClassB) == load_func
64@patch.object(
65 load_reg,
66 attribute="__load_functions_register",
67 new={},
68)
69def test_load_function_exceptions():
70 err_msg = str.format("No load function registered for type {0}", ClassA.__name__)
71 with pytest.raises(KeyError, match=err_msg):
72 get_load_function(ClassA)