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.
authorEdouard Tisserant
Mon, 31 Aug 2020 13:54:08 +0200
changeset 2706 65f35ac97cd6
parent 2705 889ec6db6f7d
child 2707 c26195654ae9
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	Thu Sep 03 11:16:08 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()