diff --git a/luxtronik/parameters.py b/luxtronik/parameters.py index 7286794..2826a52 100755 --- a/luxtronik/parameters.py +++ b/luxtronik/parameters.py @@ -1169,7 +1169,7 @@ def __init__(self, safe=True): def set(self, target, value): """Set parameter to new value.""" index, parameter = self._lookup(target, with_index=True) - if index: + if index is not None: if parameter.writeable or not self.safe: self.queue[index] = parameter.to_heatpump(value) else: diff --git a/tests/test_calculations.py b/tests/test_calculations.py new file mode 100644 index 0000000..a769e66 --- /dev/null +++ b/tests/test_calculations.py @@ -0,0 +1,14 @@ +"""Test suite for parameters module""" + +# pylint: disable=too-few-public-methods + +from luxtronik.calculations import Calculations + + +class TestCalculations: + """Test suite for Calculations""" + + def test_init(self): + """Test cases for initialization""" + calculations = Calculations() + assert calculations.name == "Calculation" diff --git a/tests/test_parameters.py b/tests/test_parameters.py index 1b9c42a..feccf3e 100644 --- a/tests/test_parameters.py +++ b/tests/test_parameters.py @@ -39,9 +39,14 @@ def test__lookup(self): assert parameters._lookup("0", True) == (0, p0) assert parameters._lookup(s, True) == (0, p0) + # Look for a name which does not exist s = "ID_BarFoo" assert parameters._lookup(s, True)[0] is None + # Look for something which is not an int and not a string + j = 0.0 + assert parameters._lookup(j) is None + def test_parse(self): """Test cases for _parse""" parameters = Parameters() @@ -53,3 +58,37 @@ def test_parse(self): p = parameters.get(n) assert p.name == f"Unknown_Parameter_{n}" + + def test___iter__(self): + """Test cases for __iter__""" + parameters = Parameters() + + for i, p in parameters: + if i == 0: + assert p.name == "ID_Transfert_LuxNet" + elif i == 1: + assert p.name == "ID_Einst_WK_akt" + else: + break + + def test_set(self): + """Test cases for set""" + parameters = Parameters() + + # Set something which does not exist + parameters.set("BarFoo", 0) + assert len(parameters.queue) == 0 + + # Set something which is not allowed to be set + parameters.set("ID_Transfert_LuxNet", 0) + assert len(parameters.queue) == 0 + + # Set something which is allowed to be set + parameters.set("ID_Einst_WK_akt", 0) + assert len(parameters.queue) == 1 + + parameters = Parameters(safe=False) + + # Set something which is not allowed to be set, but we are brave. + parameters.set("ID_Transfert_LuxNet", 0) + assert len(parameters.queue) == 1 diff --git a/tests/test_visibilities.py b/tests/test_visibilities.py new file mode 100644 index 0000000..47bc22f --- /dev/null +++ b/tests/test_visibilities.py @@ -0,0 +1,14 @@ +"""Test suite for parameters module""" + +# pylint: disable=too-few-public-methods + +from luxtronik.visibilities import Visibilities + + +class TestVisibilities: + """Test suite for Visibilities""" + + def test_init(self): + """Test cases for initialization""" + visibilities = Visibilities() + assert visibilities.name == "Visibility"