From 1e5cfbe595c90c96c6e872ff320ea072d53acc91 Mon Sep 17 00:00:00 2001 From: "WQY\\qiong" Date: Fri, 24 Feb 2023 15:23:41 +0800 Subject: [PATCH] Test new scada api --- test_tjnetwork.py | 1091 +++++++++++++++++++++++++++++++-------------- 1 file changed, 749 insertions(+), 342 deletions(-) diff --git a/test_tjnetwork.py b/test_tjnetwork.py index 837513b..6f05844 100644 --- a/test_tjnetwork.py +++ b/test_tjnetwork.py @@ -3661,410 +3661,817 @@ class TestApi: # 28 end - # 29 scada_model + # 29 scada_device - def test_scada_model(self): - p = 'test_scada_model' + def test_scada_device(self): + p = 'test_scada_device' + self.enter(p) + + d = get_scada_device(p, 'd0') + assert d == {} + + add_scada_device(p, ChangeSet({'id': 'd0'})) + d = get_scada_device(p, 'd0') + assert d['id'] == 'd0' + assert d['name'] == None + assert d['address'] == None + assert d['sd_type'] == None + + set_scada_device(p, ChangeSet({'id': 'd0', 'name': 'device0', 'address': 'x', 'sd_type': SCADA_DEVICE_TYPE_FLOW})) + d = get_scada_device(p, 'd0') + assert d['id'] == 'd0' + assert d['name'] == 'device0' + assert d['address'] == 'x' + assert d['sd_type'] == SCADA_DEVICE_TYPE_FLOW + + add_scada_device(p, ChangeSet({'id': 'd1', 'name': 'device1', 'address': 'x', 'sd_type': SCADA_DEVICE_TYPE_PRESSURE})) + d = get_scada_device(p, 'd1') + assert d['id'] == 'd1' + assert d['name'] == 'device1' + assert d['address'] == 'x' + assert d['sd_type'] == SCADA_DEVICE_TYPE_PRESSURE + + delete_scada_device(p, ChangeSet({'id': 'd0'})) + d = get_scada_device(p, 'd0') + assert d == {} + + delete_scada_device(p, ChangeSet({'id': 'd1'})) + d = get_scada_device(p, 'd1') + assert d == {} + + add_scada_device(p, ChangeSet({'id': 'd0'})) + d = get_scada_device(p, 'd0') + assert d['id'] == 'd0' + + add_scada_device(p, ChangeSet({'id': 'd1'})) + d = get_scada_device(p, 'd1') + assert d['id'] == 'd1' + + clean_scada_device(p) + d = get_scada_device(p, 'd0') + assert d == {} + d = get_scada_device(p, 'd1') + assert d == {} + + self.leave(p) + + + def test_scada_device_op(self): + p = 'test_scada_device_op' + + self.enter(p) + + cs = add_scada_device(p, ChangeSet({'id': 'd0'})).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + assert cs['name'] == None + assert cs['address'] == None + assert cs['sd_type'] == None + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + assert cs['name'] == None + assert cs['address'] == None + assert cs['sd_type'] == None + + cs = set_scada_device(p, ChangeSet({'id': 'd0', 'name': 'device0', 'address': 'x', 'sd_type': SCADA_DEVICE_TYPE_FLOW})).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + assert cs['name'] == 'device0' + assert cs['address'] == 'x' + assert cs['sd_type'] == SCADA_DEVICE_TYPE_FLOW + + cs = add_scada_device(p, ChangeSet({'id': 'd1', 'name': 'device1', 'address': 'x', 'sd_type': SCADA_DEVICE_TYPE_PRESSURE})).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + assert cs['name'] == 'device1' + assert cs['address'] == 'x' + assert cs['sd_type'] == SCADA_DEVICE_TYPE_PRESSURE + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + assert cs['name'] == 'device1' + assert cs['address'] == 'x' + assert cs['sd_type'] == SCADA_DEVICE_TYPE_PRESSURE + + cs = delete_scada_device(p, ChangeSet({'id': 'd0'})).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + assert cs['name'] == 'device0' + assert cs['address'] == 'x' + assert cs['sd_type'] == SCADA_DEVICE_TYPE_FLOW + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + + cs = delete_scada_device(p, ChangeSet({'id': 'd1'})).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + assert cs['name'] == 'device1' + assert cs['address'] == 'x' + assert cs['sd_type'] == SCADA_DEVICE_TYPE_PRESSURE + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + + cs = add_scada_device(p, ChangeSet({'id': 'd0'})).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + assert cs['name'] == None + assert cs['address'] == None + assert cs['sd_type'] == None + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + assert cs['name'] == None + assert cs['address'] == None + assert cs['sd_type'] == None + + cs = add_scada_device(p, ChangeSet({'id': 'd1'})).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + assert cs['name'] == None + assert cs['address'] == None + assert cs['sd_type'] == None + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + assert cs['name'] == None + assert cs['address'] == None + assert cs['sd_type'] == None + + css = clean_scada_device(p).operations + assert len(css) == 2 + cs = css[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + cs = css[1] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + + css = execute_undo(p).operations + assert len(css) == 2 + cs = css[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + assert cs['name'] == None + assert cs['address'] == None + assert cs['sd_type'] == None + cs = css[1] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + assert cs['name'] == None + assert cs['address'] == None + assert cs['sd_type'] == None + + css = execute_redo(p).operations + assert len(css) == 2 + cs = css[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd0' + cs = css[1] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device' + assert cs['id'] == 'd1' + + self.leave(p) + + + # 30 scada_device_data + + + def test_scada_device_data(self): + p = 'test_scada_device_data' + self.enter(p) + + add_scada_device(p, ChangeSet({'id': 'sd'})) + + sa = get_scada_device_data(p, 'sd') + assert sa['device_id'] == 'sd' + assert sa['data'] == [] + + set_scada_device_data(p, ChangeSet({'device_id': 'sd', 'data': [{ 'time': '2023-02-10 00:02:22', 'value': 100.0 }]})) + sa = get_scada_device_data(p, 'sd') + assert sa['device_id'] == 'sd' + assert len(sa['data']) == 1 + assert sa['data'][0]['time'] == '2023-02-10 00:02:22' + assert sa['data'][0]['value'] == 100.0 + + set_scada_device_data(p, ChangeSet({'device_id': 'sd', 'data': [{ 'time': '2023-02-10 00:02:22', 'value': 100.0 }, { 'time': '2023-02-10 00:03:22', 'value': 200.0 }]})) + sa = get_scada_device_data(p, 'sd') + assert sa['device_id'] == 'sd' + assert len(sa['data']) == 2 + assert sa['data'][0]['time'] == '2023-02-10 00:02:22' + assert sa['data'][0]['value'] == 100.0 + assert sa['data'][1]['time'] == '2023-02-10 00:03:22' + assert sa['data'][1]['value'] == 200.0 + + add_scada_device_data(p, ChangeSet({'device_id': 'sd', 'time': '2023-02-10 00:02:22', 'value': 100.0})) + sa = get_scada_device_data(p, 'sd') + assert sa['device_id'] == 'sd' + assert len(sa['data']) == 2 + assert sa['data'][0]['time'] == '2023-02-10 00:02:22' + assert sa['data'][0]['value'] == 100.0 + assert sa['data'][1]['time'] == '2023-02-10 00:03:22' + assert sa['data'][1]['value'] == 200.0 + + add_scada_device_data(p, ChangeSet({'device_id': 'sd', 'time': '2023-02-11 00:02:22', 'value': 100.0})) + sa = get_scada_device_data(p, 'sd') + assert sa['device_id'] == 'sd' + assert len(sa['data']) == 3 + assert sa['data'][0]['time'] == '2023-02-10 00:02:22' + assert sa['data'][0]['value'] == 100.0 + assert sa['data'][1]['time'] == '2023-02-10 00:03:22' + assert sa['data'][1]['value'] == 200.0 + assert sa['data'][2]['time'] == '2023-02-11 00:02:22' + assert sa['data'][2]['value'] == 100.0 + + delete_scada_device_data(p, ChangeSet({'device_id': 'sd', 'time': '2023-02-12 00:02:22'})) + sa = get_scada_device_data(p, 'sd') + assert sa['device_id'] == 'sd' + assert len(sa['data']) == 3 + assert sa['data'][0]['time'] == '2023-02-10 00:02:22' + assert sa['data'][0]['value'] == 100.0 + assert sa['data'][1]['time'] == '2023-02-10 00:03:22' + assert sa['data'][1]['value'] == 200.0 + assert sa['data'][2]['time'] == '2023-02-11 00:02:22' + assert sa['data'][2]['value'] == 100.0 + + delete_scada_device_data(p, ChangeSet({'device_id': 'sd', 'time': '2023-02-11 00:02:22'})) + sa = get_scada_device_data(p, 'sd') + assert sa['device_id'] == 'sd' + assert len(sa['data']) == 2 + assert sa['data'][0]['time'] == '2023-02-10 00:02:22' + assert sa['data'][0]['value'] == 100.0 + assert sa['data'][1]['time'] == '2023-02-10 00:03:22' + assert sa['data'][1]['value'] == 200.0 + + set_scada_device_data(p, ChangeSet({'device_id': 'sd', 'data': []})) + sa = get_scada_device_data(p, 'sd') + assert sa['device_id'] == 'sd' + assert sa['data'] == [] + + add_scada_device(p, ChangeSet({'id': 'sd0'})) + add_scada_device_data(p, ChangeSet({'device_id': 'sd0', 'time': '2023-02-10 00:02:22', 'value': 100.0})) + add_scada_device_data(p, ChangeSet({'device_id': 'sd0', 'time': '2023-02-11 00:02:22', 'value': 200.0})) + add_scada_device_data(p, ChangeSet({'device_id': 'sd0', 'time': '2023-02-12 00:02:22', 'value': 300.0})) + + add_scada_device(p, ChangeSet({'id': 'sd1'})) + set_scada_device_data(p, ChangeSet({'device_id': 'sd1', 'data': [{'time': '2023-02-10 00:02:22', 'value': 100.0}, {'time': '2023-02-11 00:02:22', 'value': 200.0}, {'time': '2023-02-12 00:02:22', 'value': 300.0}]})) + + clean_scada_device_data(p) + sa = get_scada_device_data(p, 'sd0') + assert sa['device_id'] == 'sd0' + assert sa['data'] == [] + sa = get_scada_device_data(p, 'sd1') + assert sa['device_id'] == 'sd1' + assert sa['data'] == [] + + self.leave(p) + + + def test_scada_device_data_op(self): + p = 'test_scada_device_data_op' + self.enter(p) + + add_scada_device(p, ChangeSet({'id': 'sd'})) + + cs = set_scada_device_data(p, ChangeSet({'device_id': 'sd', 'data': [{ 'time': '2023-02-10 00:02:22', 'value': 100.0 }]})).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert len(cs['data']) == 1 + assert cs['data'][0]['time'] == '2023-02-10 00:02:22' + assert cs['data'][0]['value'] == 100.0 + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert cs['data'] == [] + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert len(cs['data']) == 1 + assert cs['data'][0]['time'] == '2023-02-10 00:02:22' + assert cs['data'][0]['value'] == 100.0 + + cs = set_scada_device_data(p, ChangeSet({'device_id': 'sd', 'data': [{ 'time': '2023-02-10 00:02:22', 'value': 100.0 }, { 'time': '2023-02-10 00:03:22', 'value': 200.0 }]})).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert len(cs['data']) == 2 + assert cs['data'][0]['time'] == '2023-02-10 00:02:22' + assert cs['data'][0]['value'] == 100.0 + assert cs['data'][1]['time'] == '2023-02-10 00:03:22' + assert cs['data'][1]['value'] == 200.0 + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert len(cs['data']) == 1 + assert cs['data'][0]['time'] == '2023-02-10 00:02:22' + assert cs['data'][0]['value'] == 100.0 + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert len(cs['data']) == 2 + assert cs['data'][0]['time'] == '2023-02-10 00:02:22' + assert cs['data'][0]['value'] == 100.0 + assert cs['data'][1]['time'] == '2023-02-10 00:03:22' + assert cs['data'][1]['value'] == 200.0 + + cs = add_scada_device_data(p, ChangeSet({'device_id': 'sd', 'time': '2023-02-10 00:02:22', 'value': 100.0})) + assert len(cs.operations) == 0 + + cs = add_scada_device_data(p, ChangeSet({'device_id': 'sd', 'time': '2023-02-11 00:02:22', 'value': 100.0})).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert cs['time'] == '2023-02-11 00:02:22' + assert cs['value'] == 100.0 + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert cs['time'] == '2023-02-11 00:02:22' + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert cs['time'] == '2023-02-11 00:02:22' + assert cs['value'] == 100.0 + + cs = delete_scada_device_data(p, ChangeSet({'device_id': 'sd', 'time': '2023-02-12 00:02:22'})) + assert len(cs.operations) == 0 + + cs = delete_scada_device_data(p, ChangeSet({'device_id': 'sd', 'time': '2023-02-11 00:02:22'})).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert cs['time'] == '2023-02-11 00:02:22' + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert cs['time'] == '2023-02-11 00:02:22' + assert cs['value'] == 100.0 + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert cs['time'] == '2023-02-11 00:02:22' + + cs = set_scada_device_data(p, ChangeSet({'device_id': 'sd', 'data': []})).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert cs['data'] == [] + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert len(cs['data']) == 2 + assert cs['data'][0]['time'] == '2023-02-10 00:02:22' + assert cs['data'][0]['value'] == 100.0 + assert cs['data'][1]['time'] == '2023-02-10 00:03:22' + assert cs['data'][1]['value'] == 200.0 + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd' + assert cs['data'] == [] + + add_scada_device(p, ChangeSet({'id': 'sd0'})) + add_scada_device_data(p, ChangeSet({'device_id': 'sd0', 'time': '2023-02-10 00:02:22', 'value': 100.0})) + add_scada_device_data(p, ChangeSet({'device_id': 'sd0', 'time': '2023-02-11 00:02:22', 'value': 200.0})) + add_scada_device_data(p, ChangeSet({'device_id': 'sd0', 'time': '2023-02-12 00:02:22', 'value': 300.0})) + + add_scada_device(p, ChangeSet({'id': 'sd1'})) + set_scada_device_data(p, ChangeSet({'device_id': 'sd1', 'data': [{'time': '2023-02-10 00:02:22', 'value': 100.0}, {'time': '2023-02-11 00:02:22', 'value': 200.0}, {'time': '2023-02-12 00:02:22', 'value': 300.0}]})) + + css = clean_scada_device_data(p).operations + cs = css[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd0' + assert cs['data'] == [] + cs = css[1] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd1' + assert cs['data'] == [] + + css = execute_undo(p).operations + cs = css[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd1' + assert cs['data'][0] == {'time': '2023-02-10 00:02:22', 'value': 100.0} + assert cs['data'][1] == {'time': '2023-02-11 00:02:22', 'value': 200.0} + assert cs['data'][2] == {'time': '2023-02-12 00:02:22', 'value': 300.0} + cs = css[1] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd0' + assert cs['data'][0] == {'time': '2023-02-10 00:02:22', 'value': 100.0} + assert cs['data'][1] == {'time': '2023-02-11 00:02:22', 'value': 200.0} + assert cs['data'][2] == {'time': '2023-02-12 00:02:22', 'value': 300.0} + + css = execute_redo(p).operations + cs = css[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd0' + assert cs['data'] == [] + cs = css[1] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_device_data' + assert cs['device_id'] == 'sd1' + assert cs['data'] == [] + + self.leave(p) + + + # 31 scada_element + + + def test_scada_element(self): + p = 'test_scada_element' self.enter(p) add_junction(p, ChangeSet({'id': 'j1', 'x': 0.0, 'y': 10.0, 'elevation': 20.0})) add_junction(p, ChangeSet({'id': 'j2', 'x': 0.0, 'y': 10.0, 'elevation': 20.0})) add_pipe(p, ChangeSet({'id': 'p1', 'node1': 'j1', 'node2': 'j2', 'length': 100.0, 'diameter': 10.0, 'roughness': 0.1, 'minor_loss': 0.5, 'status': PIPE_STATUS_OPEN })) + add_scada_device(p, ChangeSet({'id': 'sd0', 'name': 'device0', 'address': 'x0', 'sd_type': SCADA_DEVICE_TYPE_PRESSURE})) + add_scada_device(p, ChangeSet({'id': 'sd1', 'name': 'device1', 'address': 'x1', 'sd_type': SCADA_DEVICE_TYPE_FLOW})) - sm = get_scada_model(p, 'sm') + add_scada_element(p, ChangeSet({'id': 'sm0', 'x': 0.0, 'y': 1.0, 'device_id': 'sd0', 'model_id': 'j0', 'status': SCADA_ELEMENT_STATUS_OFFLINE})) + sm = get_scada_element(p, 'sm0') assert sm == {} - - add_scada_model(p, ChangeSet({'id': 'sm', 'x': 0.0, 'y': 10.0, 'device_id': 'sm_device'})) - sm = get_scada_model(p, 'sm') - assert sm['id'] == 'sm' + add_scada_element(p, ChangeSet({'id': 'sm0', 'x': 0.0, 'y': 1.0, 'device_id': 'sd0', 'model_id': 'j1', 'status': SCADA_ELEMENT_STATUS_OFFLINE})) + sm = get_scada_element(p, 'sm0') + assert sm['id'] == 'sm0' assert sm['x'] == 0.0 - assert sm['y'] == 10.0 - assert sm['device_id'] == 'sm_device' - assert sm['device_name'] == None - assert sm['address'] == None - assert sm['sm_type'] == None - assert sm['model_id'] == None - assert sm['status'] == SCADA_STATUS_OFFLINE - - add_scada_model(p, ChangeSet({'id': 'sm0', 'x': 0.0, 'y': 10.0, 'device_id': 'sm_device_0', 'device_name': 'sm_device_name', 'address': 'xxx', 'sm_type': SCADA_TYPE_PRESSURE, 'model_id': 'j0'})) - sm0 = get_scada_model(p, 'sm0') - assert sm0 == {} - - add_scada_model(p, ChangeSet({'id': 'sm0', 'x': 0.0, 'y': 10.0, 'device_id': 'sm_device_0', 'device_name': 'sm_device_name', 'address': 'xxx', 'sm_type': SCADA_TYPE_PRESSURE, 'model_id': 'p0'})) - sm0 = get_scada_model(p, 'sm0') - assert sm0 == {} - - add_scada_model(p, ChangeSet({'id': 'sm1', 'x': 0.0, 'y': 10.0, 'device_id': 'sm_device_1', 'device_name': 'sm_device_name', 'address': 'xxx', 'sm_type': SCADA_TYPE_PRESSURE, 'model_id': 'j1'})) - sm1 = get_scada_model(p, 'sm1') - assert sm1['id'] == 'sm1' - assert sm1['x'] == 0.0 - assert sm1['y'] == 10.0 - assert sm1['device_id'] == 'sm_device_1' - assert sm1['device_name'] == 'sm_device_name' - assert sm1['address'] == 'xxx' - assert sm1['sm_type'] == SCADA_TYPE_PRESSURE - assert sm1['model_id'] == 'j1' - assert sm1['status'] == SCADA_STATUS_OFFLINE - - add_scada_model(p, ChangeSet({'id': 'sm2', 'x': 0.0, 'y': 10.0, 'device_id': 'sm_device_2', 'device_name': 'sm_device_name', 'address': 'xxx', 'sm_type': SCADA_TYPE_PRESSURE, 'model_id': 'p1', 'status': SCADA_STATUS_ONLINE})) - sm2 = get_scada_model(p, 'sm2') - assert sm2['id'] == 'sm2' - assert sm2['x'] == 0.0 - assert sm2['y'] == 10.0 - assert sm2['device_id'] == 'sm_device_2' - assert sm2['device_name'] == 'sm_device_name' - assert sm2['address'] == 'xxx' - assert sm2['sm_type'] == SCADA_TYPE_PRESSURE - assert sm2['model_id'] == 'p1' - assert sm2['status'] == SCADA_STATUS_ONLINE - - set_scada_model(p, ChangeSet({'id': 'sm', 'device_name': 'sm_device_name', 'address': 'xxx', 'sm_type': SCADA_TYPE_PRESSURE, 'model_id': 'j0', 'status': SCADA_STATUS_ONLINE})) - sm = get_scada_model(p, 'sm') - assert sm['id'] == 'sm' - assert sm['x'] == 0.0 - assert sm['y'] == 10.0 - assert sm['device_id'] == 'sm_device' - assert sm['device_name'] == None - assert sm['address'] == None - assert sm['sm_type'] == None - assert sm['model_id'] == None - assert sm['status'] == SCADA_STATUS_OFFLINE - - set_scada_model(p, ChangeSet({'id': 'sm', 'device_name': 'sm_device_name', 'address': 'xxx', 'sm_type': SCADA_TYPE_PRESSURE, 'model_id': 'j1', 'status': SCADA_STATUS_ONLINE})) - sm = get_scada_model(p, 'sm') - assert sm['id'] == 'sm' - assert sm['x'] == 0.0 - assert sm['y'] == 10.0 - assert sm['device_id'] == 'sm_device' - assert sm['device_name'] == 'sm_device_name' - assert sm['address'] == 'xxx' - assert sm['sm_type'] == SCADA_TYPE_PRESSURE + assert sm['y'] == 1.0 + assert sm['device_id'] == 'sd0' assert sm['model_id'] == 'j1' - assert sm['status'] == SCADA_STATUS_ONLINE + assert sm['status'] == SCADA_ELEMENT_STATUS_OFFLINE - delete_scada_model(p, ChangeSet({'id': 'sm'})) - sm = get_scada_model(p, 'sm') + add_scada_element(p, ChangeSet({'id': 'sm1', 'x': 1.0, 'y': 2.0, 'device_id': 'sd1', 'model_id': 'p0', 'status': SCADA_ELEMENT_STATUS_ONLINE})) + sm = get_scada_element(p, 'sm1') + assert sm == {} + add_scada_element(p, ChangeSet({'id': 'sm1', 'x': 1.0, 'y': 2.0, 'device_id': 'sd1', 'model_id': 'p1', 'status': SCADA_ELEMENT_STATUS_ONLINE})) + sm = get_scada_element(p, 'sm1') + assert sm['id'] == 'sm1' + assert sm['x'] == 1.0 + assert sm['y'] == 2.0 + assert sm['device_id'] == 'sd1' + assert sm['model_id'] == 'p1' + assert sm['status'] == SCADA_ELEMENT_STATUS_ONLINE + + set_scada_element(p, ChangeSet({'id': 'sm0', 'x': 1.0, 'y': 2.0, 'device_id': 'sd1', 'model_id': 'p1', 'status': SCADA_ELEMENT_STATUS_ONLINE})) + sm = get_scada_element(p, 'sm0') + assert sm['id'] == 'sm0' + assert sm['x'] == 1.0 + assert sm['y'] == 2.0 + assert sm['device_id'] == 'sd1' + assert sm['model_id'] == 'p1' + assert sm['status'] == SCADA_ELEMENT_STATUS_ONLINE + + set_scada_element(p, ChangeSet({'id': 'sm1', 'x': 0.0, 'y': 1.0, 'device_id': 'sd0', 'model_id': 'j1', 'status': SCADA_ELEMENT_STATUS_OFFLINE})) + sm = get_scada_element(p, 'sm1') + assert sm['id'] == 'sm1' + assert sm['x'] == 0.0 + assert sm['y'] == 1.0 + assert sm['device_id'] == 'sd0' + assert sm['model_id'] == 'j1' + assert sm['status'] == SCADA_ELEMENT_STATUS_OFFLINE + + delete_scada_element(p, ChangeSet({'id': 'sm0'})) + sm = get_scada_element(p, 'sm0') assert sm == {} - delete_scada_model(p, ChangeSet({'id': 'sm1'})) - sm1 = get_scada_model(p, 'sm1') - assert sm1 == {} + delete_scada_element(p, ChangeSet({'id': 'sm1'})) + sm = get_scada_element(p, 'sm1') + assert sm == {} - delete_scada_model(p, ChangeSet({'id': 'sm2'})) - sm2 = get_scada_model(p, 'sm2') - assert sm2 == {} + add_scada_element(p, ChangeSet({'id': 'sm0', 'x': 0.0, 'y': 1.0, 'device_id': 'sd0', 'model_id': 'j1', 'status': SCADA_ELEMENT_STATUS_OFFLINE})) + sm = get_scada_element(p, 'sm0') + assert sm['id'] == 'sm0' + assert sm['x'] == 0.0 + assert sm['y'] == 1.0 + assert sm['device_id'] == 'sd0' + assert sm['model_id'] == 'j1' + assert sm['status'] == SCADA_ELEMENT_STATUS_OFFLINE + + add_scada_element(p, ChangeSet({'id': 'sm1', 'x': 1.0, 'y': 2.0, 'device_id': 'sd1', 'model_id': 'p1', 'status': SCADA_ELEMENT_STATUS_ONLINE})) + sm = get_scada_element(p, 'sm1') + assert sm['id'] == 'sm1' + assert sm['x'] == 1.0 + assert sm['y'] == 2.0 + assert sm['device_id'] == 'sd1' + assert sm['model_id'] == 'p1' + assert sm['status'] == SCADA_ELEMENT_STATUS_ONLINE + + clean_scada_element(p) + sm = get_scada_element(p, 'sm0') + assert sm == {} + sm = get_scada_element(p, 'sm1') + assert sm == {} self.leave(p) - def test_scada_model_op(self): - p = 'test_scada_model_op' - + def test_scada_element_op(self): + p = 'test_scada_element_op' self.enter(p) add_junction(p, ChangeSet({'id': 'j1', 'x': 0.0, 'y': 10.0, 'elevation': 20.0})) add_junction(p, ChangeSet({'id': 'j2', 'x': 0.0, 'y': 10.0, 'elevation': 20.0})) + add_pipe(p, ChangeSet({'id': 'p1', 'node1': 'j1', 'node2': 'j2', 'length': 100.0, 'diameter': 10.0, 'roughness': 0.1, 'minor_loss': 0.5, 'status': PIPE_STATUS_OPEN })) + add_scada_device(p, ChangeSet({'id': 'sd0', 'name': 'device0', 'address': 'x0', 'sd_type': SCADA_DEVICE_TYPE_PRESSURE})) + add_scada_device(p, ChangeSet({'id': 'sd1', 'name': 'device1', 'address': 'x1', 'sd_type': SCADA_DEVICE_TYPE_FLOW})) - cs = add_scada_model(p, ChangeSet({'id': 'sm', 'x': 0.0, 'y': 10.0, 'device_id': 'sm_device', 'device_name': 'sm_device_name', 'address': 'xxx', 'sm_type': SCADA_TYPE_PRESSURE, 'model_id': 'j1', 'status': SCADA_STATUS_ONLINE})).operations[0] + css = add_scada_element(p, ChangeSet({'id': 'sm0', 'x': 0.0, 'y': 1.0, 'device_id': 'sd0', 'model_id': 'j0', 'status': SCADA_ELEMENT_STATUS_OFFLINE})).operations + assert len(css) == 0 + cs = add_scada_element(p, ChangeSet({'id': 'sm0', 'x': 0.0, 'y': 1.0, 'device_id': 'sd0', 'model_id': 'j1', 'status': SCADA_ELEMENT_STATUS_OFFLINE})).operations[0] assert cs['operation'] == API_ADD - assert cs['type'] == 'scada_model' - assert cs['id'] == 'sm' + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' assert cs['x'] == 0.0 - assert cs['y'] == 10.0 - assert cs['device_id'] == 'sm_device' - assert cs['device_name'] == 'sm_device_name' - assert cs['address'] == 'xxx' - assert cs['sm_type'] == SCADA_TYPE_PRESSURE + assert cs['y'] == 1.0 + assert cs['device_id'] == 'sd0' assert cs['model_id'] == 'j1' - assert cs['status'] == SCADA_STATUS_ONLINE + assert cs['status'] == SCADA_ELEMENT_STATUS_OFFLINE cs = execute_undo(p).operations[0] assert cs['operation'] == API_DELETE - assert cs['type'] == 'scada_model' - assert cs['id'] == 'sm' + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' cs = execute_redo(p).operations[0] assert cs['operation'] == API_ADD - assert cs['type'] == 'scada_model' - assert cs['id'] == 'sm' + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' assert cs['x'] == 0.0 - assert cs['y'] == 10.0 - assert cs['device_id'] == 'sm_device' - assert cs['device_name'] == 'sm_device_name' - assert cs['address'] == 'xxx' - assert cs['sm_type'] == SCADA_TYPE_PRESSURE + assert cs['y'] == 1.0 + assert cs['device_id'] == 'sd0' assert cs['model_id'] == 'j1' - assert cs['status'] == SCADA_STATUS_ONLINE + assert cs['status'] == SCADA_ELEMENT_STATUS_OFFLINE - cs = set_scada_model(p, ChangeSet({'id': 'sm', 'device_name': 'sm_device_name_', 'address': 'xxx_', 'sm_type': SCADA_TYPE_DEMAND, 'model_id': 'j2', 'status': SCADA_STATUS_OFFLINE})).operations[0] + css = add_scada_element(p, ChangeSet({'id': 'sm1', 'x': 1.0, 'y': 2.0, 'device_id': 'sd1', 'model_id': 'p0', 'status': SCADA_ELEMENT_STATUS_ONLINE})).operations + assert len(css) == 0 + cs = add_scada_element(p, ChangeSet({'id': 'sm1', 'x': 1.0, 'y': 2.0, 'device_id': 'sd1', 'model_id': 'p1', 'status': SCADA_ELEMENT_STATUS_ONLINE})).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' + assert cs['x'] == 1.0 + assert cs['y'] == 2.0 + assert cs['device_id'] == 'sd1' + assert cs['model_id'] == 'p1' + assert cs['status'] == SCADA_ELEMENT_STATUS_ONLINE + + cs = execute_undo(p).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' + assert cs['x'] == 1.0 + assert cs['y'] == 2.0 + assert cs['device_id'] == 'sd1' + assert cs['model_id'] == 'p1' + assert cs['status'] == SCADA_ELEMENT_STATUS_ONLINE + + cs = set_scada_element(p, ChangeSet({'id': 'sm0', 'x': 1.0, 'y': 2.0, 'device_id': 'sd1', 'model_id': 'p1', 'status': SCADA_ELEMENT_STATUS_ONLINE})).operations[0] assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_model' - assert cs['id'] == 'sm' - assert cs['x'] == 0.0 - assert cs['y'] == 10.0 - assert cs['device_id'] == 'sm_device' - assert cs['device_name'] == 'sm_device_name_' - assert cs['address'] == 'xxx_' - assert cs['sm_type'] == SCADA_TYPE_DEMAND - assert cs['model_id'] == 'j2' - assert cs['status'] == SCADA_STATUS_OFFLINE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' + assert cs['x'] == 1.0 + assert cs['y'] == 2.0 + assert cs['device_id'] == 'sd1' + assert cs['model_id'] == 'p1' + assert cs['status'] == SCADA_ELEMENT_STATUS_ONLINE cs = execute_undo(p).operations[0] assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_model' - assert cs['id'] == 'sm' + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' assert cs['x'] == 0.0 - assert cs['y'] == 10.0 - assert cs['device_id'] == 'sm_device' - assert cs['device_name'] == 'sm_device_name' - assert cs['address'] == 'xxx' - assert cs['sm_type'] == SCADA_TYPE_PRESSURE + assert cs['y'] == 1.0 + assert cs['device_id'] == 'sd0' assert cs['model_id'] == 'j1' - assert cs['status'] == SCADA_STATUS_ONLINE + assert cs['status'] == SCADA_ELEMENT_STATUS_OFFLINE cs = execute_redo(p).operations[0] assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_model' - assert cs['id'] == 'sm' + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' + assert cs['x'] == 1.0 + assert cs['y'] == 2.0 + assert cs['device_id'] == 'sd1' + assert cs['model_id'] == 'p1' + assert cs['status'] == SCADA_ELEMENT_STATUS_ONLINE + + cs = set_scada_element(p, ChangeSet({'id': 'sm1', 'x': 0.0, 'y': 1.0, 'device_id': 'sd0', 'model_id': 'j1', 'status': SCADA_ELEMENT_STATUS_OFFLINE})).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' assert cs['x'] == 0.0 - assert cs['y'] == 10.0 - assert cs['device_id'] == 'sm_device' - assert cs['device_name'] == 'sm_device_name_' - assert cs['address'] == 'xxx_' - assert cs['sm_type'] == SCADA_TYPE_DEMAND - assert cs['model_id'] == 'j2' - assert cs['status'] == SCADA_STATUS_OFFLINE - - cs = delete_scada_model(p, ChangeSet({'id': 'sm'})).operations[0] - assert cs['operation'] == API_DELETE - assert cs['type'] == 'scada_model' - assert cs['id'] == 'sm' + assert cs['y'] == 1.0 + assert cs['device_id'] == 'sd0' + assert cs['model_id'] == 'j1' + assert cs['status'] == SCADA_ELEMENT_STATUS_OFFLINE cs = execute_undo(p).operations[0] - assert cs['operation'] == API_ADD - assert cs['type'] == 'scada_model' - assert cs['id'] == 'sm' + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' + assert cs['x'] == 1.0 + assert cs['y'] == 2.0 + assert cs['device_id'] == 'sd1' + assert cs['model_id'] == 'p1' + assert cs['status'] == SCADA_ELEMENT_STATUS_ONLINE + + cs = execute_redo(p).operations[0] + assert cs['operation'] == API_UPDATE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' assert cs['x'] == 0.0 - assert cs['y'] == 10.0 - assert cs['device_id'] == 'sm_device' - assert cs['device_name'] == 'sm_device_name_' - assert cs['address'] == 'xxx_' - assert cs['sm_type'] == SCADA_TYPE_DEMAND - assert cs['model_id'] == 'j2' - assert cs['status'] == SCADA_STATUS_OFFLINE + assert cs['y'] == 1.0 + assert cs['device_id'] == 'sd0' + assert cs['model_id'] == 'j1' + assert cs['status'] == SCADA_ELEMENT_STATUS_OFFLINE - cs = execute_redo(p).operations[0] + cs = delete_scada_element(p, ChangeSet({'id': 'sm0'})).operations[0] assert cs['operation'] == API_DELETE - assert cs['type'] == 'scada_model' - assert cs['id'] == 'sm' - - self.leave(p) - - - # 30 scada_data - - - def test_scada_data(self): - p = 'test_scada_data' - self.enter(p) - - add_junction(p, ChangeSet({'id': 'j1', 'x': 0.0, 'y': 10.0, 'elevation': 20.0})) - - add_scada_model(p, ChangeSet({'id': 'sm', 'x': 0.0, 'y': 10.0, 'device_id': 'sm_device', 'device_name': 'sm_device_name', 'address': 'xxx', 'sm_type': SCADA_TYPE_PRESSURE, 'model_id': 'j1'})) - - sa = get_scada_data(p, 'sm_device') - assert sa['device_id'] == 'sm_device' - assert sa['data'] == [] - - set_scada_data(p, ChangeSet({'device_id': 'sm_device', 'data': [{ 'time': '2023-02-10 00:02:22', 'value': 100.0 }]})) - sa = get_scada_data(p, 'sm_device') - assert sa['device_id'] == 'sm_device' - assert len(sa['data']) == 1 - assert sa['data'][0]['time'] == '2023-02-10 00:02:22' - assert sa['data'][0]['value'] == 100.0 - - set_scada_data(p, ChangeSet({'device_id': 'sm_device', 'data': [{ 'time': '2023-02-10 00:02:22', 'value': 100.0 }, { 'time': '2023-02-10 00:03:22', 'value': 200.0 }]})) - sa = get_scada_data(p, 'sm_device') - assert sa['device_id'] == 'sm_device' - assert len(sa['data']) == 2 - assert sa['data'][0]['time'] == '2023-02-10 00:02:22' - assert sa['data'][0]['value'] == 100.0 - assert sa['data'][1]['time'] == '2023-02-10 00:03:22' - assert sa['data'][1]['value'] == 200.0 - - add_scada_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-10 00:02:22', 'value': 100.0})) - sa = get_scada_data(p, 'sm_device') - assert sa['device_id'] == 'sm_device' - assert len(sa['data']) == 2 - assert sa['data'][0]['time'] == '2023-02-10 00:02:22' - assert sa['data'][0]['value'] == 100.0 - assert sa['data'][1]['time'] == '2023-02-10 00:03:22' - assert sa['data'][1]['value'] == 200.0 - - add_scada_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-11 00:02:22', 'value': 100.0})) - sa = get_scada_data(p, 'sm_device') - assert sa['device_id'] == 'sm_device' - assert len(sa['data']) == 3 - assert sa['data'][0]['time'] == '2023-02-10 00:02:22' - assert sa['data'][0]['value'] == 100.0 - assert sa['data'][1]['time'] == '2023-02-10 00:03:22' - assert sa['data'][1]['value'] == 200.0 - assert sa['data'][2]['time'] == '2023-02-11 00:02:22' - assert sa['data'][2]['value'] == 100.0 - - delete_scada_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-12 00:02:22'})) - sa = get_scada_data(p, 'sm_device') - assert sa['device_id'] == 'sm_device' - assert len(sa['data']) == 3 - assert sa['data'][0]['time'] == '2023-02-10 00:02:22' - assert sa['data'][0]['value'] == 100.0 - assert sa['data'][1]['time'] == '2023-02-10 00:03:22' - assert sa['data'][1]['value'] == 200.0 - assert sa['data'][2]['time'] == '2023-02-11 00:02:22' - assert sa['data'][2]['value'] == 100.0 - - delete_scada_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-11 00:02:22'})) - sa = get_scada_data(p, 'sm_device') - assert sa['device_id'] == 'sm_device' - assert len(sa['data']) == 2 - assert sa['data'][0]['time'] == '2023-02-10 00:02:22' - assert sa['data'][0]['value'] == 100.0 - assert sa['data'][1]['time'] == '2023-02-10 00:03:22' - assert sa['data'][1]['value'] == 200.0 - - set_scada_data(p, ChangeSet({'device_id': 'sm_device', 'data': []})) - sa = get_scada_data(p, 'sm_device') - assert sa['device_id'] == 'sm_device' - assert sa['data'] == [] - - self.leave(p) - - - def test_scada_data_op(self): - p = 'test_scada_data_op' - self.enter(p) - - add_junction(p, ChangeSet({'id': 'j1', 'x': 0.0, 'y': 10.0, 'elevation': 20.0})) - - add_scada_model(p, ChangeSet({'id': 'sm', 'x': 0.0, 'y': 10.0, 'device_id': 'sm_device', 'device_name': 'sm_device_name', 'address': 'xxx', 'sm_type': SCADA_TYPE_PRESSURE, 'model_id': 'j1'})) - - cs = set_scada_data(p, ChangeSet({'device_id': 'sm_device', 'data': [{ 'time': '2023-02-10 00:02:22', 'value': 100.0 }]})).operations[0] - assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert len(cs['data']) == 1 - assert cs['data'][0]['time'] == '2023-02-10 00:02:22' - assert cs['data'][0]['value'] == 100.0 - - cs = execute_undo(p).operations[0] - assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert cs['data'] == [] - - cs = execute_redo(p).operations[0] - assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert len(cs['data']) == 1 - assert cs['data'][0]['time'] == '2023-02-10 00:02:22' - assert cs['data'][0]['value'] == 100.0 - - cs = set_scada_data(p, ChangeSet({'device_id': 'sm_device', 'data': [{ 'time': '2023-02-10 00:02:22', 'value': 100.0 }, { 'time': '2023-02-10 00:03:22', 'value': 200.0 }]})).operations[0] - assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert len(cs['data']) == 2 - assert cs['data'][0]['time'] == '2023-02-10 00:02:22' - assert cs['data'][0]['value'] == 100.0 - assert cs['data'][1]['time'] == '2023-02-10 00:03:22' - assert cs['data'][1]['value'] == 200.0 - - cs = execute_undo(p).operations[0] - assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert len(cs['data']) == 1 - assert cs['data'][0]['time'] == '2023-02-10 00:02:22' - assert cs['data'][0]['value'] == 100.0 - - cs = execute_redo(p).operations[0] - assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert len(cs['data']) == 2 - assert cs['data'][0]['time'] == '2023-02-10 00:02:22' - assert cs['data'][0]['value'] == 100.0 - assert cs['data'][1]['time'] == '2023-02-10 00:03:22' - assert cs['data'][1]['value'] == 200.0 - - cs = add_scada_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-10 00:02:22', 'value': 100.0})) - assert len(cs.operations) == 0 - - cs = add_scada_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-11 00:02:22', 'value': 100.0})).operations[0] - assert cs['operation'] == API_ADD - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert cs['time'] == '2023-02-11 00:02:22' - assert cs['value'] == 100.0 - - cs = execute_undo(p).operations[0] - assert cs['operation'] == API_DELETE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert cs['time'] == '2023-02-11 00:02:22' - - cs = execute_redo(p).operations[0] - assert cs['operation'] == API_ADD - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert cs['time'] == '2023-02-11 00:02:22' - assert cs['value'] == 100.0 - - cs = delete_scada_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-12 00:02:22'})) - assert len(cs.operations) == 0 - - cs = delete_scada_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-11 00:02:22'})).operations[0] - assert cs['operation'] == API_DELETE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert cs['time'] == '2023-02-11 00:02:22' + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' cs = execute_undo(p).operations[0] assert cs['operation'] == API_ADD - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert cs['time'] == '2023-02-11 00:02:22' - assert cs['value'] == 100.0 + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' + assert cs['x'] == 1.0 + assert cs['y'] == 2.0 + assert cs['device_id'] == 'sd1' + assert cs['model_id'] == 'p1' + assert cs['status'] == SCADA_ELEMENT_STATUS_ONLINE cs = execute_redo(p).operations[0] assert cs['operation'] == API_DELETE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert cs['time'] == '2023-02-11 00:02:22' + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' - cs = set_scada_data(p, ChangeSet({'device_id': 'sm_device', 'data': []})).operations[0] - assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert cs['data'] == [] + cs = delete_scada_element(p, ChangeSet({'id': 'sm1'})).operations[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' cs = execute_undo(p).operations[0] - assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert len(cs['data']) == 2 - assert cs['data'][0]['time'] == '2023-02-10 00:02:22' - assert cs['data'][0]['value'] == 100.0 - assert cs['data'][1]['time'] == '2023-02-10 00:03:22' - assert cs['data'][1]['value'] == 200.0 + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' + assert cs['x'] == 0.0 + assert cs['y'] == 1.0 + assert cs['device_id'] == 'sd0' + assert cs['model_id'] == 'j1' + assert cs['status'] == SCADA_ELEMENT_STATUS_OFFLINE cs = execute_redo(p).operations[0] - assert cs['operation'] == API_UPDATE - assert cs['type'] == 'scada_data' - assert cs['device_id'] == 'sm_device' - assert cs['data'] == [] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' + + cs = add_scada_element(p, ChangeSet({'id': 'sm0', 'x': 0.0, 'y': 1.0, 'device_id': 'sd0', 'model_id': 'j1', 'status': SCADA_ELEMENT_STATUS_OFFLINE})).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' + assert cs['x'] == 0.0 + assert cs['y'] == 1.0 + assert cs['device_id'] == 'sd0' + assert cs['model_id'] == 'j1' + assert cs['status'] == SCADA_ELEMENT_STATUS_OFFLINE + + cs = add_scada_element(p, ChangeSet({'id': 'sm1', 'x': 1.0, 'y': 2.0, 'device_id': 'sd1', 'model_id': 'p1', 'status': SCADA_ELEMENT_STATUS_ONLINE})).operations[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' + assert cs['x'] == 1.0 + assert cs['y'] == 2.0 + assert cs['device_id'] == 'sd1' + assert cs['model_id'] == 'p1' + assert cs['status'] == SCADA_ELEMENT_STATUS_ONLINE + + css = clean_scada_element(p).operations + cs = css[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' + cs = css[1] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' + + css = execute_undo(p).operations + cs = css[0] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' + assert cs['x'] == 1.0 + assert cs['y'] == 2.0 + assert cs['device_id'] == 'sd1' + assert cs['model_id'] == 'p1' + assert cs['status'] == SCADA_ELEMENT_STATUS_ONLINE + cs = css[1] + assert cs['operation'] == API_ADD + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' + assert cs['x'] == 0.0 + assert cs['y'] == 1.0 + assert cs['device_id'] == 'sd0' + assert cs['model_id'] == 'j1' + assert cs['status'] == SCADA_ELEMENT_STATUS_OFFLINE + + css = execute_redo(p).operations + cs = css[0] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm0' + cs = css[1] + assert cs['operation'] == API_DELETE + assert cs['type'] == 'scada_element' + assert cs['id'] == 'sm1' self.leave(p)