Attempt to workaround problem reported about empty plc.xml after unrelated crash. Now, if etree model is corrupted in a way tostring() would generate an empty string, exception prevents saving. svghmi
authorEdouard Tisserant
Mon, 31 Aug 2020 13:54:08 +0200
branchsvghmi
changeset 3049 4ac68ec9786f
parent 3048 d46d545ff7b7
child 3050 f9d494d11339
Attempt to workaround problem reported about empty plc.xml after unrelated crash. Now, if etree model is corrupted in a way tostring() would generate an empty string, exception prevents saving.
plcopen/plcopen.py
--- a/plcopen/plcopen.py	Fri Aug 28 15:29:35 2020 +0200
+++ b/plcopen/plcopen.py	Mon Aug 31 13:54:08 2020 +0200
@@ -331,12 +331,16 @@
 
 
 def SaveProject(project, filepath):
-    project_file = open(filepath, 'w')
-    project_file.write(etree.tostring(
+    content = etree.tostring(
         project,
         pretty_print=True,
         xml_declaration=True,
-        encoding='utf-8'))
+        encoding='utf-8')
+
+    assert len(content) != 0
+        
+    project_file = open(filepath, 'w')
+    project_file.write(content)
     project_file.close()