diff --git a/src/energenie/OpenThings_test.py b/src/energenie/OpenThings_test.py index 554617c..9ee20c4 100644 --- a/src/energenie/OpenThings_test.py +++ b/src/energenie/OpenThings_test.py @@ -135,35 +135,72 @@ import Devices +# ACCESSOR VARIANTS +# as method parameters: +# {pydict} +# +# header={pydict} +# header_mfrid=123 +# +# recs_0={pydict} +# recs_0_paramid=PARAM_SWITCH_STATE +# recs_SWITCH_STATE={pydict} +# recs_SWITCH_STATE_value=1 +# +# as attribute accessors +# msg["header"] +# msg["recs"][0] +# msg[PARAM_SWITCH_STATE] + + class TestMessage(unittest.TestCase): + def test_blank(self): # create a blank message msg = Message() msg.dump() - def XXXtest_blank_create_header(self): + def test_blank_create_dict(self): + msg = Message({"header":{}, "recs":[{"parmid":PARAM_SWITCH_STATE, "value":1}]}) + msg.dump() + + #### HEADER + + def XXXtest_blank_create_header_dict(self): + # create a blank message and add a header at creation from a dict + msg = Message(header={"mfrid":123, "productid":456, "sensorid":789}) + msg.dump() + + def XXXtest_blank_create_header_paths(self): # create a blank message and add some header fields at creation time msg = Message(header_mfrid=123, header_productid=456, header_sensorid=789) msg.dump() - def XXXtest_add_header_dict(self): + def XXXtest_add_header_attr(self): # add header fields to a message after creation like a pydict msg = Message() msg["header"]["mfrid"] = 123 msg.dump() - def XXXtest_add_rec_dict(self): - # add rec fields to a message after creation like a pydict - msg = Message() - msg["recs"][0] = {"paramid": PARAM_SWITCH_STATE, "value": 1} - msg.dump() - def XXXtest_add_header_path(self): # add header fields to a message after creation via pathed keys msg = Message() msg.add(header_mfrid=123, header_productid=456) msg.dump() + def XXXtest_add_header_dict(self): + msg = Message() + msg.add(header={"mfrid":123, "productid":456, "sensorid":789}) + msg.dump() + + #### RECORDS + + def XXXtest_add_rec_attr(self): + # add rec fields to a message after creation like a pydict + msg = Message() + msg["recs"][0] = {"paramid": PARAM_SWITCH_STATE, "value": 1} + msg.dump() + def XXXtest_add_rec_path(self): # add rec fields to a message after creation via pathed indexed keys msg = Message() @@ -176,6 +213,11 @@ msg.add_rec(PARAM_SWITCH_STATE, value=1) msg.dump() + def XXXtest_add_rec_dict(self): + # add rec fields from a dict parameter + msg = Message() + msg.add_rec({"paramid":PARAM_SWITCH_STATE, "value":1}) + def XXXtest_create_template(self): # create a message from a template msg = Message(Devices.MIHO005_REPORT) @@ -185,14 +227,13 @@ # alter rec fields in a template msg = Message(Devices.MIHO005_REPORT) msg.alter(header_productid=123) - msg.alter(recs_SWITCH_STATE_value=1) msg.dump() - def XXXtest_dump(self): - ## dump a message in printable format + def XXXtest_alter_rec_template_paramname(self): + # alter rec fields in a template msg = Message(Devices.MIHO005_REPORT) - print(msg) - print(str(msg)) + msg.alter(recs_SWITCH_STATE_value=1) + msg.dump() def XXXtest_pydict_read(self): ## access a specific keyed entry like a normal pydict, for read @@ -223,6 +264,17 @@ msg.dump() + def XXXtest_repr(self): + ## dump a message in printable format + msg = Message(Devices.MIHO005_REPORT) + print(msg) + + def XXXtest_str(self): + ## dump a message in printable format + msg = Message(Devices.MIHO005_REPORT) + print(str(msg)) + + def test_message(): import unittest unittest.main()