2424rserver_agent_name = 'REST Server'
2525twx_agent_name = 'Thingworx'
2626iot_item_name = "System__Date"
27+ WINFILENAME = 'test\\ project.opf'
28+ WINFILENAMEENCRYPT = 'test\\ project.sopf'
29+ WINFILEPATH = 'C:\\ ProgramData\\ PTC\\ ThingWorx Kepware Server\\ V6\\ '
30+ LINUXFILENAME = 'project.lpf'
31+ LINUXFILENAMEENCRYPT = 'project.slpf'
32+ LINUXFILEPATH = 'C:\\ DockerMounts\\ tke1_5\\ user_data\\ '
33+ FILEPASSWORD = 'Password'
34+
2735
2836def initialize (server ):
2937 pass
3038
3139def complete (server ):
40+ if server_type == 'TKE' :
41+ file = LINUXFILENAME
42+ file_encrypt = LINUXFILENAMEENCRYPT
43+ filepath = LINUXFILEPATH
44+ else :
45+ file = WINFILENAME
46+ file_encrypt = WINFILENAMEENCRYPT
47+ filepath = WINFILEPATH
48+ files = ['{}{}' .format (filepath , file ), '{}{}' .format (filepath , file_encrypt )]
49+ for x in files :
50+ if os .path .exists (x ):
51+ os .remove (x )
52+ else :
53+ print ("The file does not exist" )
3254 pass
3355
3456@pytest .fixture (scope = "module" )
35- def server (kepware_server : kepconfig .connection .server ):
36- server = kepware_server
57+ def server (kepware_server : list [kepconfig .connection .server , str ]):
58+ server = kepware_server [0 ]
59+ global server_type
60+ server_type = kepware_server [1 ]
3761
3862 # Initialize any configuration before testing in module
3963 initialize (server )
@@ -43,7 +67,7 @@ def server(kepware_server: kepconfig.connection.server):
4367 complete (server )
4468
4569def test_connection_params (server : kepconfig .connection .server ):
46-
70+ current = [ server . SSL_trust_all_certs , server . SSL_ignore_hostname ]
4771 server .SSL_trust_all_certs = True
4872 assert server .SSL_trust_all_certs == True
4973 server .SSL_ignore_hostname = True
@@ -54,6 +78,10 @@ def test_connection_params(server: kepconfig.connection.server):
5478 server .SSL_ignore_hostname = False
5579 assert server .SSL_ignore_hostname == False
5680
81+ server .SSL_trust_all_certs = current [0 ]
82+ server .SSL_ignore_hostname = current [1 ]
83+
84+
5785def test_reinitialize_service_status (server : kepconfig .connection .server ):
5886 job = server .reinitialize ()
5987 assert type (job ) == kepconfig .connection .KepServiceResponse
@@ -87,3 +115,74 @@ def test_event_log(server: kepconfig.connection.server):
87115 assert type (server .get_event_log (25 , None , None )) == list
88116
89117 assert type (server .get_event_log (None , datetime .datetime .fromisoformat ('2022-02-21T14:23:23.000' ), datetime .datetime .utcnow ())) == list
118+
119+ def test_projectsave_service (server : kepconfig .connection .server ):
120+ if server_type == 'TKE' :
121+ file = LINUXFILENAME
122+ file_encrypt = LINUXFILENAMEENCRYPT
123+ filepath = LINUXFILEPATH
124+ else :
125+ file = WINFILENAME
126+ file_encrypt = WINFILENAMEENCRYPT
127+ filepath = WINFILEPATH
128+
129+ # Save non-encrypted file
130+ job = server .save_project (file , None , 60 )
131+ assert type (job ) == kepconfig .connection .KepServiceResponse
132+ time .sleep (1 )
133+ status = server .service_status (job )
134+
135+ # Wait for service to be completed
136+ while True :
137+ time .sleep (1 )
138+ status = server .service_status (job )
139+ if (status .complete == True ): break
140+ assert type (status ) == kepconfig .connection .KepServiceStatus
141+
142+ # Save encrypted file
143+ job = server .save_project (file_encrypt , FILEPASSWORD , 60 )
144+ assert type (job ) == kepconfig .connection .KepServiceResponse
145+ time .sleep (1 )
146+ status = server .service_status (job )
147+
148+ # Wait for service to be completed
149+ while True :
150+ time .sleep (1 )
151+ status = server .service_status (job )
152+ if (status .complete == True ): break
153+ assert type (status ) == kepconfig .connection .KepServiceStatus
154+
155+ def test_projectload_service (server : kepconfig .connection .server ):
156+
157+ if server_type == 'TKE' :
158+ file = LINUXFILENAME
159+ file_encrypt = LINUXFILENAMEENCRYPT
160+ filepath = ''
161+ else :
162+ file = WINFILENAME
163+ file_encrypt = WINFILENAMEENCRYPT
164+ filepath = WINFILEPATH
165+
166+ # Load non-encrypted file
167+ job = server .load_project ('{}{}' .format (filepath , file ), None , 60 )
168+ assert type (job ) == kepconfig .connection .KepServiceResponse
169+
170+ # Wait for service to be completed
171+ while True :
172+ time .sleep (1 )
173+ status = server .service_status (job )
174+ if (status .complete == True ): break
175+ assert type (status ) == kepconfig .connection .KepServiceStatus
176+
177+ # Load encrypted file
178+ job = server .load_project ('{}{}' .format (filepath , file_encrypt ), FILEPASSWORD , 60 )
179+ assert type (job ) == kepconfig .connection .KepServiceResponse
180+ time .sleep (1 )
181+ status = server .service_status (job )
182+
183+ # Wait for service to be completed
184+ while True :
185+ time .sleep (1 )
186+ status = server .service_status (job )
187+ if (status .complete == True ): break
188+ assert type (status ) == kepconfig .connection .KepServiceStatus
0 commit comments