2 from datetime
import datetime, timedelta
5 from opcua
import Client
6 from opcua
import Server
12 from tests_common
import CommonTests, add_server_methods
27 cls.srv.set_endpoint(
'opc.tcp://localhost:{0:d}'.format(port_num1))
30 cls.
clt = Client(
'opc.tcp://localhost:{0:d}'.format(port_num1))
40 o = cls.srv.get_objects_node()
42 cls.
var = o.add_variable(3,
"history_var", 0)
43 cls.srv.historize_node_data_change(cls.
var, period=
None, count=0)
52 res = self.var.read_raw_history(
None,
None, 1)
53 self.assertEqual(len(res), 1)
54 self.assertEqual(res[0].Value.Value, self.
values[-1])
58 res = self.var.read_raw_history(
None,
None, 0)
59 self.assertEqual(len(res), 20)
60 self.assertEqual(res[0].Value.Value, self.
values[-1])
61 self.assertEqual(res[-1].Value.Value, self.
values[0])
65 res = self.var.read_raw_history(
None,
None, 3)
66 self.assertEqual(len(res), 3)
67 self.assertEqual(res[-1].Value.Value, self.
values[-3])
68 self.assertEqual(res[0].Value.Value, self.
values[-1])
72 res = self.var.read_raw_history(
None,
None, 9999)
73 self.assertEqual(len(res), 20)
74 self.assertEqual(res[-1].Value.Value, self.
values[0])
75 self.assertEqual(res[0].Value.Value, self.
values[-1])
79 now = datetime.utcnow()
80 old = now - timedelta(days=6)
82 res = self.var.read_raw_history(
None, now, 2)
83 self.assertEqual(len(res), 2)
84 self.assertEqual(res[-1].Value.Value, self.
values[-2])
88 now = datetime.utcnow()
89 old = now - timedelta(days=6)
91 res = self.var.read_raw_history(old, now, 0)
92 self.assertEqual(len(res), 20)
93 self.assertEqual(res[-1].Value.Value, self.
values[-1])
94 self.assertEqual(res[0].Value.Value, self.
values[0])
97 now = datetime.utcnow()
98 old = now - timedelta(days=6)
100 res = self.var.read_raw_history(old, now, 5)
101 self.assertEqual(len(res), 5)
102 self.assertEqual(res[-1].Value.Value, self.
values[4])
103 self.assertEqual(res[0].Value.Value, self.
values[0])
107 now = datetime.utcnow()
108 old = now - timedelta(days=6)
110 res = self.var.read_raw_history(now, old, 5)
111 self.assertEqual(len(res), 5)
112 self.assertEqual(res[-1].Value.Value, self.
values[-5])
113 self.assertEqual(res[0].Value.Value, self.
values[-1])
117 now = datetime.utcnow()
118 old = now - timedelta(days=6)
119 res = self.var.read_raw_history(old,
None, 6)
120 self.assertEqual(len(res), 6)
121 self.assertEqual(res[-1].Value.Value, self.
values[5])
122 self.assertEqual(res[0].Value.Value, self.
values[0])
126 now = datetime.utcnow()
127 old = now - timedelta(days=6)
128 res = self.var.read_raw_history(old,
None, 0)
129 self.assertEqual(len(res), 20)
130 self.assertEqual(res[-1].Value.Value, self.
values[-1])
131 self.assertEqual(res[0].Value.Value, self.
values[0])
135 end = datetime.utcnow() + timedelta(days=6)
136 res = self.var.read_raw_history(
None, end, 0)
137 self.assertEqual(len(res), 20)
138 self.assertEqual(res[-1].Value.Value, self.
values[0])
139 self.assertEqual(res[0].Value.Value, self.
values[-1])
143 end = datetime.utcnow() + timedelta(days=6)
144 res = self.var.read_raw_history(
None, end, 3)
145 self.assertEqual(len(res), 3)
146 self.assertEqual(res[2].Value.Value, self.
values[-3])
147 self.assertEqual(res[0].Value.Value, self.
values[-1])
157 cls.
srv_node = cls.srv.get_node(ua.ObjectIds.Server)
158 cls.srv.historize_node_event(cls.
srv_node, period=
None)
161 cls.srvevgen.event.Severity = cls.
ev_values[i]
162 cls.srvevgen.trigger(message=
"test message")
168 now = datetime.utcnow()
169 old = now - timedelta(days=6)
171 res = self.srv_node.read_event_history(
None, now, 2)
172 self.assertEqual(len(res), 2)
173 self.assertEqual(res[-1].Severity, self.
ev_values[-2])
177 now = datetime.utcnow()
178 old = now - timedelta(days=6)
180 res = self.srv_node.read_event_history(old, now, 0)
181 self.assertEqual(len(res), 20)
182 self.assertEqual(res[-1].Severity, self.
ev_values[-1])
183 self.assertEqual(res[0].Severity, self.
ev_values[0])
186 now = datetime.utcnow()
187 old = now - timedelta(days=6)
189 res = self.srv_node.read_event_history(old, now, 5)
190 self.assertEqual(len(res), 5)
191 self.assertEqual(res[-1].Severity, self.
ev_values[4])
192 self.assertEqual(res[0].Severity, self.
ev_values[0])
196 now = datetime.utcnow()
197 old = now - timedelta(days=6)
199 res = self.srv_node.read_event_history(now, old, 5)
200 self.assertEqual(len(res), 5)
201 self.assertEqual(res[-1].Severity, self.
ev_values[-5])
202 self.assertEqual(res[0].Severity, self.
ev_values[-1])
206 now = datetime.utcnow()
207 old = now - timedelta(days=6)
208 res = self.srv_node.read_event_history(old,
None, 6)
209 self.assertEqual(len(res), 6)
210 self.assertEqual(res[-1].Severity, self.
ev_values[5])
211 self.assertEqual(res[0].Severity, self.
ev_values[0])
215 now = datetime.utcnow()
216 old = now - timedelta(days=6)
217 res = self.srv_node.read_event_history(old,
None, 0)
218 self.assertEqual(len(res), 20)
219 self.assertEqual(res[-1].Severity, self.
ev_values[-1])
220 self.assertEqual(res[0].Severity, self.
ev_values[0])
224 end = datetime.utcnow() + timedelta(days=6)
225 res = self.srv_node.read_event_history(
None, end, 0)
226 self.assertEqual(len(res), 20)
227 self.assertEqual(res[-1].Severity, self.
ev_values[0])
228 self.assertEqual(res[0].Severity, self.
ev_values[-1])
232 end = datetime.utcnow() + timedelta(days=6)
233 res = self.srv_node.read_event_history(
None, end, 3)
234 self.assertEqual(len(res), 3)
235 self.assertEqual(res[2].Severity, self.
ev_values[-3])
236 self.assertEqual(res[0].Severity, self.
ev_values[-1])
240 now = datetime.utcnow()
241 old = now - timedelta(days=6)
242 res = self.srv_node.read_event_history(old,
None, 0)
243 self.assertEqual(len(res), 20)
244 self.assertEqual(res[-1].Severity, self.
ev_values[-1])
245 self.assertEqual(res[0].Severity, self.
ev_values[0])
258 results, cont = self.history.read_node_history(self.
id,
None,
None,
None)
262 value = ua.DataValue()
263 value.ServerTimestamp = datetime.utcnow() - timedelta(hours = age)
264 self.history.save_node_value(self.
id, value)
267 self.history.new_historized_node(self.
id, period=
None, count=3)
281 self.history.new_historized_node(self.
id, period=timedelta(hours=3))
295 self.history.new_historized_node(self.
id, period=timedelta(hours=3), count=2)
336 cls.srv.iserver.history_manager.set_storage(
HistorySQLite(
":memory:"))
def test_history_var_read_3_with_end(self)
def createHistoryInstance(self)
def test_combined_limit(self)
def test_count_limit(self)
def test_history_ev_read_all_with_start(self)
def test_history_var_read_all_with_start(self)
def test_history_ev_read_6_with_start(self)
def test_history_var_read_one(self)
def test_history_ev_read_3_with_end(self)
def createHistoryInstance(self)
def test_history_var_read_all_with_end(self)
def test_history_ev_read_2_with_end(self)
def test_history_var_read_6_with_start(self)
def test_history_var_read_2_with_end(self)
def test_history_ev_read_all_filter_order_reversed(self)
def createHistoryInstance(self)
def test_history_var_read_all2(self)
def test_history_var_read_last_3(self)
def test_period_limit(self)
def test_history_ev_read_all_with_end(self)
def stop_server_and_client(cls)
def test_history_var_read_none(self)
def start_server_and_client(cls)
def test_history_ev_read_all(self)
def test_history_ev_read_5_in_timeframe_start_greater_than_end(self)
def test_history_var_read_5_in_timeframe(self)
def create_srv_events(cls)
def test_history_var_read_5_in_timeframe_start_greater_than_end(self)
def test_history_ev_read_5_in_timeframe(self)
def test_history_var_read_all(self)