From 97da24c8397e13878e464f2a57763209cd199890 Mon Sep 17 00:00:00 2001 From: Stefan Allius Date: Sun, 7 Apr 2024 22:44:53 +0200 Subject: [PATCH] add missing tests --- app/src/infos.py | 2 +- app/tests/test_infos.py | 46 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/app/src/infos.py b/app/src/infos.py index 88e70c4..5fa0697 100644 --- a/app/src/infos.py +++ b/app/src/infos.py @@ -123,7 +123,7 @@ class ClrAtMidnight: dict = dict[prfx] for key in keys[1:-1]: - if key not in dict: # pragma: no cover + if key not in dict: dict[key] = {} dict = dict[key] dict[keys[-1]] = 0 diff --git a/app/tests/test_infos.py b/app/tests/test_infos.py index f799456..8bf419d 100644 --- a/app/tests/test_infos.py +++ b/app/tests/test_infos.py @@ -530,12 +530,18 @@ def test_clr_at_midnight(): i.set_db_def_value(Register.NO_INPUTS, 2) val = i.dev_value(Register.NO_INPUTS) # valid addr but not initiliazed assert val == 2 - + i.info_defs[Register.TEST_REG1] = { # add a entry with incomplete ha definition + 'name': ['test', 'grp', 'REG_1'], 'ha': {'dev_cla': None } + } i.reg_clr_at_midnight('tsun/inv_1/') # tsun/inv_2/input assert json.dumps(ClrAtMidnight.db['tsun/inv_1/total']) == json.dumps({'Daily_Generation': 0}) assert json.dumps(ClrAtMidnight.db['tsun/inv_1/input']) == json.dumps({"pv1": {"Daily_Generation": 0}, "pv2": {"Daily_Generation": 0}}) + i.reg_clr_at_midnight('tsun/inv_1/') + assert json.dumps(ClrAtMidnight.db['tsun/inv_1/total']) == json.dumps({'Daily_Generation': 0}) + assert json.dumps(ClrAtMidnight.db['tsun/inv_1/input']) == json.dumps({"pv1": {"Daily_Generation": 0}, "pv2": {"Daily_Generation": 0}}) + test = 0 for key, data in ClrAtMidnight.elm(): if key == 'tsun/inv_1/total': @@ -546,3 +552,41 @@ def test_clr_at_midnight(): test += 1 assert test == 2 assert json.dumps(ClrAtMidnight.db) == json.dumps({}) + + i.reg_clr_at_midnight('tsun/inv_1/') + + + + +def test_pv_module_config(): + i = InfosG3() + # i.set_db_def_value(Register.NO_INPUTS, 2) + + dt = { + 'pv1':{'manufacturer':'TSUN1','type': 'Module 100W'}, + 'pv2':{'manufacturer':'TSUN2'}, + 'pv3':{'manufacturer':'TSUN3','type': 'Module 300W'}, + 'pv4':{'type': 'Module 400W'}, + 'pv5':{}, + } + i.set_pv_module_details(dt) + assert 'TSUN1' == i.dev_value(Register.PV1_MANUFACTURER) + assert 'TSUN2' == i.dev_value(Register.PV2_MANUFACTURER) + assert 'TSUN3' == i.dev_value(Register.PV3_MANUFACTURER) + assert None == i.dev_value(Register.PV4_MANUFACTURER) + assert None == i.dev_value(Register.PV5_MANUFACTURER) + assert 'Module 100W' == i.dev_value(Register.PV1_MODEL) + assert None == i.dev_value(Register.PV2_MODEL) + assert 'Module 300W' == i.dev_value(Register.PV3_MODEL) + assert 'Module 400W' == i.dev_value(Register.PV4_MODEL) + assert None == i.dev_value(Register.PV5_MODEL) + +def test_broken_info_defs(): + i = InfosG3() + val = i.get_db_value(Register.NO_INPUTS, 666) + assert val == 666 + i.info_defs[Register.TEST_REG1] = 'test' # add a string instead of a dict + val = i.get_db_value(Register.TEST_REG1, 666) + assert val == 666 + i.set_db_def_value(Register.TEST_REG1, 2) +