Skip to content

Commit c5d7619

Browse files
committed
Updated Tests for Datalogger
1 parent a300b0c commit c5d7619

2 files changed

Lines changed: 277 additions & 4 deletions

File tree

tests/datalogger.py

Lines changed: 275 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -------------------------------------------------------------------------
2-
# Copyright (c) 2020, PTC Inc. and/or all its affiliates. All rights reserved.
2+
# Copyright (c) PTC Inc. and/or all its affiliates. All rights reserved.
33
# See License.txt in the project root for
44
# license information.
55
# --------------------------------------------------------------------------
@@ -21,7 +21,7 @@
2121
# Channel and Device name to be used
2222
ch_name = 'Channel1'
2323
dev_name = 'Device1'
24-
log_group_name = 'LG1'
24+
log_group_name = 'LG'
2525
mqtt_agent_name = 'MQTT'
2626
rest_agent_name = 'REST Client'
2727
rserver_agent_name = 'REST Server'
@@ -38,8 +38,187 @@ def HTTPErrorHandler(err):
3838
else:
3939
print('Different Exception Received: {}'.format(err))
4040

41+
def __log_items_test(server, log_group):
42+
log_item1 = {
43+
"common.ALLTYPES_NAME": "LogItem1",
44+
"datalogger.LOG_ITEM_ID": "_System._Time"
45+
}
46+
47+
log_item2 = {
48+
"common.ALLTYPES_NAME": "LogItem2",
49+
"datalogger.LOG_ITEM_ID": "_System._Date"
50+
}
51+
52+
try:
53+
print(datalogger.log_items.add_log_item(server, log_group, log_item1))
54+
except Exception as err:
55+
HTTPErrorHandler(err)
56+
try:
57+
print(datalogger.log_items.del_log_item(server, log_group, log_item1['common.ALLTYPES_NAME']))
58+
except Exception as err:
59+
HTTPErrorHandler(err)
60+
61+
try:
62+
print(datalogger.log_items.add_log_item(server, log_group, [log_item1, log_item2]))
63+
except Exception as err:
64+
HTTPErrorHandler(err)
65+
66+
try:
67+
print(datalogger.log_items.modify_log_item(server, log_group, {"datalogger.LOG_ITEM_NUMERIC_ID": "1"} ,log_item1['common.ALLTYPES_NAME'], force=True))
68+
except Exception as err:
69+
HTTPErrorHandler(err)
70+
71+
try:
72+
print(datalogger.log_items.modify_log_item(server, log_group, {"datalogger.LOG_ITEM_NUMERIC_ID": "0"} ,log_item1['common.ALLTYPES_NAME']))
73+
except Exception as err:
74+
HTTPErrorHandler(err)
75+
76+
# Fail due to item not identified
77+
try:
78+
print(datalogger.log_items.modify_log_item(server, log_group, {"datalogger.LOG_ITEM_NUMERIC_ID": "0"}))
79+
except Exception as err:
80+
HTTPErrorHandler(err)
81+
82+
try:
83+
print(datalogger.log_items.modify_log_item(server, log_group, {"common.ALLTYPES_NAME": "LogItem1","datalogger.LOG_ITEM_NUMERIC_ID": "0"}, force= True))
84+
except Exception as err:
85+
HTTPErrorHandler(err)
86+
87+
try:
88+
print(datalogger.log_items.get_log_item(server, log_group,log_item1['common.ALLTYPES_NAME']))
89+
except Exception as err:
90+
HTTPErrorHandler(err)
91+
92+
try:
93+
print(datalogger.log_items.get_all_log_items(server, log_group))
94+
except Exception as err:
95+
HTTPErrorHandler(err)
96+
97+
# Execute mapping test before deleting items
98+
# Modify group to wide format
99+
try:
100+
print(datalogger.log_group.modify_log_group(server, {"datalogger.LOG_GROUP_TABLE_FORMAT": 1}, log_group, force=True))
101+
except Exception as err:
102+
HTTPErrorHandler(err)
103+
104+
__mapping_test(server, log_group)
105+
106+
# Delete Items
107+
try:
108+
print(datalogger.log_items.del_log_item(server, log_group,log_item1['common.ALLTYPES_NAME']))
109+
except Exception as err:
110+
HTTPErrorHandler(err)
111+
112+
try:
113+
print(datalogger.log_items.del_log_item(server, log_group,log_item2['common.ALLTYPES_NAME']))
114+
except Exception as err:
115+
HTTPErrorHandler(err)
116+
117+
def __triggers_test(server, log_group):
118+
trigger1 = {
119+
"common.ALLTYPES_NAME": "Trigger2",
120+
"datalogger.TRIGGER_TYPE": 0
121+
}
122+
123+
trigger2 = {
124+
125+
"common.ALLTYPES_NAME": "Trigger3",
126+
"datalogger.TRIGGER_TYPE": 1
127+
}
128+
129+
try:
130+
print(datalogger.triggers.add_trigger(server, log_group, trigger1))
131+
except Exception as err:
132+
HTTPErrorHandler(err)
133+
try:
134+
print(datalogger.triggers.del_trigger(server, log_group, trigger1['common.ALLTYPES_NAME']))
135+
except Exception as err:
136+
HTTPErrorHandler(err)
137+
138+
try:
139+
print(datalogger.triggers.add_trigger(server, log_group, [trigger1, trigger2]))
140+
except Exception as err:
141+
HTTPErrorHandler(err)
142+
143+
try:
144+
print(datalogger.triggers.modify_trigger(server, log_group, {"datalogger.TRIGGER_STATIC_INTERVAL": 1000} ,trigger1['common.ALLTYPES_NAME'], force=True))
145+
except Exception as err:
146+
HTTPErrorHandler(err)
147+
148+
try:
149+
print(datalogger.triggers.modify_trigger(server, log_group, {"datalogger.TRIGGER_STATIC_INTERVAL": 500} ,trigger1['common.ALLTYPES_NAME']))
150+
except Exception as err:
151+
HTTPErrorHandler(err)
152+
153+
# Fail due to trigger not identified
154+
try:
155+
print(datalogger.triggers.modify_trigger(server, log_group, {"datalogger.TRIGGER_STATIC_INTERVAL": 500}))
156+
except Exception as err:
157+
HTTPErrorHandler(err)
158+
159+
try:
160+
print(datalogger.triggers.modify_trigger(server, log_group, {"common.ALLTYPES_NAME": trigger1['common.ALLTYPES_NAME'],"datalogger.TRIGGER_STATIC_INTERVAL": 1000}, force= True))
161+
except Exception as err:
162+
HTTPErrorHandler(err)
163+
164+
try:
165+
print(datalogger.triggers.get_trigger(server, log_group,trigger1['common.ALLTYPES_NAME']))
166+
except Exception as err:
167+
HTTPErrorHandler(err)
168+
169+
try:
170+
print(datalogger.triggers.get_all_triggers(server, log_group))
171+
except Exception as err:
172+
HTTPErrorHandler(err)
173+
174+
# Delete triggers
175+
try:
176+
print(datalogger.triggers.del_trigger(server, log_group,trigger1['common.ALLTYPES_NAME']))
177+
except Exception as err:
178+
HTTPErrorHandler(err)
179+
180+
try:
181+
print(datalogger.triggers.del_trigger(server, log_group,trigger2['common.ALLTYPES_NAME']))
182+
except Exception as err:
183+
HTTPErrorHandler(err)
184+
185+
def __mapping_test(server, log_group):
186+
187+
map = []
188+
try:
189+
map = datalogger.mapping.get_all_mappings(server, log_group)
190+
print(map)
191+
except Exception as err:
192+
HTTPErrorHandler(err)
193+
194+
try:
195+
print(datalogger.mapping.get_mapping(server, log_group, map[0]['common.ALLTYPES_NAME']))
196+
except Exception as err:
197+
HTTPErrorHandler(err)
198+
199+
try:
200+
print(datalogger.mapping.modify_mapping(server, log_group, {"datalogger.TABLE_ALIAS_SQL_LENGTH_QUALITY": 10} , map[0]['common.ALLTYPES_NAME'], force=True))
201+
except Exception as err:
202+
HTTPErrorHandler(err)
203+
204+
try:
205+
print(datalogger.mapping.modify_mapping(server, log_group, {"datalogger.TABLE_ALIAS_SQL_LENGTH_QUALITY": 15} , map[0]['common.ALLTYPES_NAME']))
206+
except Exception as err:
207+
HTTPErrorHandler(err)
208+
209+
# Fail due to map not identified
210+
try:
211+
print(datalogger.mapping.modify_mapping(server, log_group, {"datalogger.TABLE_ALIAS_SQL_LENGTH_QUALITY": 1}))
212+
except Exception as err:
213+
HTTPErrorHandler(err)
214+
215+
try:
216+
print(datalogger.mapping.modify_mapping(server, log_group, {"common.ALLTYPES_NAME": map[0]['common.ALLTYPES_NAME'],"datalogger.TABLE_ALIAS_SQL_LENGTH_QUALITY": 0}, force= True))
217+
except Exception as err:
218+
HTTPErrorHandler(err)
219+
41220
def datalogger_test(server):
42-
log_group_data = {
221+
log_group_data1 = {
43222
"common.ALLTYPES_NAME": log_group_name,
44223
"common.ALLTYPES_DESCRIPTION": "",
45224
"datalogger.LOG_GROUP_ENABLED": False,
@@ -68,21 +247,113 @@ def datalogger_test(server):
68247
"datalogger.LOG_GROUP_REGENERATE_ALIAS_TABLE_ON_TABLE_NAME_CHANGE": False,
69248
"datalogger.LOG_GROUP_REGENERATE_ALIAS_TABLE_ON_TABLE_SELECTION_CHANGE": False
70249
}
250+
log_group_data2 = {
251+
"common.ALLTYPES_NAME": log_group_name +'1',
252+
"common.ALLTYPES_DESCRIPTION": "",
253+
"datalogger.LOG_GROUP_ENABLED": False,
254+
"datalogger.LOG_GROUP_UPDATE_RATE_MSEC": 100,
255+
"datalogger.LOG_GROUP_UPDATE_RATE_UNITS": 0,
256+
"datalogger.LOG_GROUP_MAP_NUMERIC_ID_TO_VARCHAR": False,
257+
"datalogger.LOG_GROUP_USE_LOCAL_TIME_FOR_TIMESTAMP_INSERTS": True,
258+
"datalogger.LOG_GROUP_STORE_AND_FORWARD_ENABLED": False,
259+
"datalogger.LOG_GROUP_STORE_AND_FORWARD_STORAGE_DIRECTORY": "C:\\ProgramData\\PTC\\ThingWorx Kepware Server\\V6\\DataLogger",
260+
"datalogger.LOG_GROUP_STORE_AND_FORWARD_MAX_STORAGE_SIZE": 10,
261+
"datalogger.LOG_GROUP_MAX_ROW_BUFFER_SIZE": 1000,
262+
"datalogger.LOG_GROUP_DSN": "",
263+
"datalogger.LOG_GROUP_DSN_USERNAME": "",
264+
"datalogger.LOG_GROUP_DSN_PASSWORD": "",
265+
"datalogger.LOG_GROUP_DSN_LOGIN_TIMEOUT": 10,
266+
"datalogger.LOG_GROUP_DSN_QUERY_TIMEOUT": 15,
267+
"datalogger.LOG_GROUP_TABLE_SELECTION": 0,
268+
"datalogger.LOG_GROUP_TABLE_NAME": "",
269+
"datalogger.LOG_GROUP_TABLE_FORMAT": 0,
270+
"datalogger.LOG_GROUP_BATCH_ID_ITEM": "",
271+
"datalogger.LOG_GROUP_BATCH_ID_ITEM_TYPE": "Default",
272+
"datalogger.LOG_GROUP_BATCH_ID_UPDATE_RATE": 1000,
273+
"datalogger.LOG_GROUP_BATCH_ID_UPDATE_RATE_UNITS": 0,
274+
"datalogger.LOG_GROUP_REGENERATE_ALIAS_TABLE_ON_DSN_CHANGE": True,
275+
"datalogger.LOG_GROUP_REGENERATE_ALIAS_TABLE_ON_BATCH_ID_CHANGE": True,
276+
"datalogger.LOG_GROUP_REGENERATE_ALIAS_TABLE_ON_TABLE_NAME_CHANGE": False,
277+
"datalogger.LOG_GROUP_REGENERATE_ALIAS_TABLE_ON_TABLE_SELECTION_CHANGE": False
278+
}
71279

72280
try:
73-
print(datalogger.log_group.add_log_group(server, log_group_data))
281+
print(datalogger.log_group.add_log_group(server, log_group_data1))
282+
except Exception as err:
283+
HTTPErrorHandler(err)
284+
285+
try:
286+
print(datalogger.log_group.enable_log_group(server,log_group_name))
287+
except Exception as err:
288+
HTTPErrorHandler(err)
289+
290+
try:
291+
print(datalogger.log_group.disable_log_group(server,log_group_name))
292+
except Exception as err:
293+
HTTPErrorHandler(err)
294+
295+
try:
296+
print(datalogger.log_group.del_log_group(server, log_group_name))
297+
except Exception as err:
298+
HTTPErrorHandler(err)
299+
300+
try:
301+
print(datalogger.log_group.add_log_group(server, [log_group_data1, log_group_data2]))
302+
except Exception as err:
303+
HTTPErrorHandler(err)
304+
305+
try:
306+
print(datalogger.log_group.modify_log_group(server, {"datalogger.LOG_GROUP_USE_LOCAL_TIME_FOR_TIMESTAMP_INSERTS": False},log_group_data1['common.ALLTYPES_NAME'], force=True))
307+
except Exception as err:
308+
HTTPErrorHandler(err)
309+
310+
try:
311+
print(datalogger.log_group.modify_log_group(server,{"datalogger.LOG_GROUP_USE_LOCAL_TIME_FOR_TIMESTAMP_INSERTS": True},log_group_data1['common.ALLTYPES_NAME']))
312+
except Exception as err:
313+
HTTPErrorHandler(err)
314+
315+
# Fail due to no log_group name provided
316+
try:
317+
print(datalogger.log_group.modify_log_group(server,{"datalogger.LOG_GROUP_USE_LOCAL_TIME_FOR_TIMESTAMP_INSERTS": True}))
318+
except Exception as err:
319+
HTTPErrorHandler(err)
320+
321+
try:
322+
print(datalogger.log_group.modify_log_group(server,{"common.ALLTYPES_NAME": log_group_name,"datalogger.LOG_GROUP_USE_LOCAL_TIME_FOR_TIMESTAMP_INSERTS": True}))
74323
except Exception as err:
75324
HTTPErrorHandler(err)
76325

77326
try:
78327
print(datalogger.log_group.get_log_group(server, log_group_name))
79328
except Exception as err:
80329
HTTPErrorHandler(err)
330+
331+
try:
332+
print(datalogger.log_group.get_all_log_groups(server))
333+
except Exception as err:
334+
HTTPErrorHandler(err)
335+
336+
# Execute Log Items testing
337+
__log_items_test(server, log_group_name)
338+
339+
# Execute Triggers testing
340+
__triggers_test(server, log_group_name)
341+
342+
# Execute Services
343+
try:
344+
print(datalogger.log_group.reset_column_mapping_service(server,log_group_name))
345+
except Exception as err:
346+
HTTPErrorHandler(err)
81347

82348
try:
83349
print(datalogger.log_group.del_log_group(server, log_group_name))
84350
except Exception as err:
85351
HTTPErrorHandler(err)
352+
353+
try:
354+
print(datalogger.log_group.del_log_group(server, log_group_data2['common.ALLTYPES_NAME']))
355+
except Exception as err:
356+
HTTPErrorHandler(err)
86357

87358
if __name__ == "__main__":
88359
time_start = time.perf_counter()

tests/master_test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,10 @@ def HTTPErrorHandler(err):
114114

115115
# Execute Module Tests
116116
admin.user_manager_test(server)
117+
117118
# runs on TKE since UA Endpoint management isn't available in TKS
118119
admin.uaserver_test(tke_server)
120+
119121
connectivity.connectivity_test(server)
120122
iot_gateway.iot_gateway_test(server)
121123
datalogger.datalogger_test(server)

0 commit comments

Comments
 (0)