From dd2a91f8c936faa2bb9440c62de6104aa0a9d338 Mon Sep 17 00:00:00 2001
From: Auke Klazema <klazema@astron.nl>
Date: Mon, 25 Mar 2019 12:49:19 +0000
Subject: [PATCH] SW-609: StringIO doesn't like bytes anymore

---
 .../lib/lofarxml_to_momxml_translator.py                    | 4 ++--
 SAS/SpecificationServices/lib/translation_service.py        | 4 ++--
 .../test/t_telescope_model_xml_generator_type1.py           | 4 ++--
 .../django_rest/restinterface/triggerinterface/views.py     | 4 ++--
 SAS/TriggerServices/lib/trigger_service.py                  | 6 +++---
 5 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/SAS/SpecificationServices/lib/lofarxml_to_momxml_translator.py b/SAS/SpecificationServices/lib/lofarxml_to_momxml_translator.py
index daafa83c58d..f795a8e9da3 100644
--- a/SAS/SpecificationServices/lib/lofarxml_to_momxml_translator.py
+++ b/SAS/SpecificationServices/lib/lofarxml_to_momxml_translator.py
@@ -52,7 +52,7 @@ from .config import VALIDATION_SERVICENAME, VALIDATION_BUSNAME
 from .validation_service_rpc import ValidationRPC
 from .specification_service import _parse_relation_tree, make_key, _parse_project_code
 
-from io import StringIO
+from io import BytesIO
 import logging
 
 __version__ = '0.43'
@@ -740,7 +740,7 @@ class LofarXmlToMomXmlTranslator():
 
         # Parse specification
         parser = etree.XMLParser(remove_blank_text=True)  # <-- prevent that prettyprinting breaks
-        spectree = etree.parse(StringIO(spec_xml.encode('UTF-8')), parser=parser).getroot()
+        spectree = etree.parse(BytesIO(spec_xml.encode('UTF-8')), parser=parser).getroot()
 
         nsmap = {"lofar": "http://www.astron.nl/MoM2-Lofar",
                  "mom2": "http://www.astron.nl/MoM2",
diff --git a/SAS/SpecificationServices/lib/translation_service.py b/SAS/SpecificationServices/lib/translation_service.py
index ea35a0f7f0d..732439c5016 100644
--- a/SAS/SpecificationServices/lib/translation_service.py
+++ b/SAS/SpecificationServices/lib/translation_service.py
@@ -44,7 +44,7 @@ from lofar.specificationservices.telescope_model_xml_generator_type1 import Tele
 
 logger = logging.getLogger(__name__)
 from lxml import etree
-from io import StringIO
+from io import BytesIO
 
 from lofar.messaging import Service
 from lofar.messaging.Service import MessageHandlerInterface
@@ -80,7 +80,7 @@ class SpecificationTranslationHandler(MessageHandlerInterface):
         try:
             # pick the specification element
             parser = etree.XMLParser(remove_blank_text=True)
-            doc = etree.parse(StringIO(trigger_spec.encode('UTF-8')), parser=parser)
+            doc = etree.parse(BytesIO(trigger_spec.encode('UTF-8')), parser=parser)
             # spec = doc.getroot().find('{http://www.astron.nl/LofarSpecification}specification')
             root = doc.getroot()
             if not "trigger" in root.tag:
diff --git a/SAS/SpecificationServices/test/t_telescope_model_xml_generator_type1.py b/SAS/SpecificationServices/test/t_telescope_model_xml_generator_type1.py
index 43301c4aa2e..90fcdac35a6 100755
--- a/SAS/SpecificationServices/test/t_telescope_model_xml_generator_type1.py
+++ b/SAS/SpecificationServices/test/t_telescope_model_xml_generator_type1.py
@@ -22,7 +22,7 @@
 import os
 import unittest
 from lxml import etree
-from io import StringIO
+from io import BytesIO
 
 from lofar.specificationservices.telescope_model import TelescopeModel
 from lofar.specificationservices.telescope_model_xml_generator_type1 import TelescopeModelXMLGeneratorType1
@@ -93,7 +93,7 @@ class TestTelescopeModelXMLGeneratorType1(unittest.TestCase):
         xmlcontent = f.read()
         f.close()
 
-        xmldoc = etree.parse(StringIO(xmlcontent.encode('UTF-8')))
+        xmldoc = etree.parse(BytesIO(xmlcontent.encode('UTF-8')))
         return etree.tostring(xmldoc)
 
 
diff --git a/SAS/TriggerServices/django_rest/restinterface/triggerinterface/views.py b/SAS/TriggerServices/django_rest/restinterface/triggerinterface/views.py
index b3c8e5980a5..0b8282ad105 100644
--- a/SAS/TriggerServices/django_rest/restinterface/triggerinterface/views.py
+++ b/SAS/TriggerServices/django_rest/restinterface/triggerinterface/views.py
@@ -17,7 +17,7 @@ from rest_framework_xml.renderers import XMLRenderer
 from io import BytesIO
 from rest_framework.fields import CurrentUserDefault
 from lxml import etree
-from io import StringIO
+from io import BytesIO
 
 from lofar.triggerservices.trigger_service_rpc import TriggerRPC
 from lofar.specificationservices.specification_service_rpc import SpecificationRPC
@@ -150,7 +150,7 @@ class TriggerListView(views.APIView):
         return Response(identifier, status=status.HTTP_201_CREATED)
 
     def _renameXMLroot(self, xml, newname):
-        root = etree.parse(StringIO(xml))
+        root = etree.parse(BytesIO(xml))
         root.tag = newname
         return etree.tostring(root)
 
diff --git a/SAS/TriggerServices/lib/trigger_service.py b/SAS/TriggerServices/lib/trigger_service.py
index 16391cdccfc..e41a059e311 100644
--- a/SAS/TriggerServices/lib/trigger_service.py
+++ b/SAS/TriggerServices/lib/trigger_service.py
@@ -21,7 +21,7 @@
 # with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>.
 
 
-from io import StringIO
+from io import BytesIO
 from lxml import etree
 from datetime import datetime, timedelta
 
@@ -127,7 +127,7 @@ def _send_notification(user, host, project, trigger_id, metadata):
 
 
 def _parse_project_id(trigger_xml):
-    doc = etree.parse(StringIO(trigger_xml.encode('utf-8')))
+    doc = etree.parse(BytesIO(trigger_xml.encode('utf-8')))
     ref = doc.find("projectReference")
     #return ref.find("identifier").find("identifier").text
     return ref.find("ProjectCode").text
@@ -374,4 +374,4 @@ def main():
 
 if __name__ == '__main__':
     logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', level=logging.INFO)
-    main()
\ No newline at end of file
+    main()
-- 
GitLab