Commit 43de2f3a authored by Rafael Monnerat's avatar Rafael Monnerat 👻

slapos_accounting: Fixup for py3 on bytes Vs str inconsistencies

parent 42c9eb30
...@@ -28,24 +28,25 @@ ...@@ -28,24 +28,25 @@
from lxml import etree from lxml import etree
from zExceptions import Unauthorized from zExceptions import Unauthorized
import pkg_resources import pkg_resources
from six import StringIO from io import BytesIO
from Products.ERP5Type.Utils import str2bytes, bytes2str
def ComputerConsumptionTioXMLFile_parseXml(self, REQUEST=None): def ComputerConsumptionTioXMLFile_parseXml(self, REQUEST=None):
"""Call bang on self.""" """Call bang on self."""
if REQUEST is not None: if REQUEST is not None:
raise Unauthorized raise Unauthorized
xml = self.getData("")
compute_node_consumption_model = \ compute_node_consumption_model = \
pkg_resources.resource_string( pkg_resources.resource_string(
'slapos.slap', 'doc/computer_consumption.xsd') 'slapos.slap', 'doc/computer_consumption.xsd')
# Validate against the xsd # Validate against the xsd
xsd_model = StringIO(compute_node_consumption_model) xsd_model = BytesIO(compute_node_consumption_model)
xmlschema_doc = etree.parse(xsd_model) xmlschema_doc = etree.parse(xsd_model)
xmlschema = etree.XMLSchema(xmlschema_doc) xmlschema = etree.XMLSchema(xmlschema_doc)
string_to_validate = StringIO(xml) xml = self.getData(str2bytes(""))
string_to_validate = BytesIO(xml)
try: try:
tree = etree.parse(string_to_validate) tree = etree.parse(string_to_validate)
......
...@@ -2,6 +2,8 @@ from zExceptions import Unauthorized ...@@ -2,6 +2,8 @@ from zExceptions import Unauthorized
if REQUEST is not None: if REQUEST is not None:
raise Unauthorized raise Unauthorized
from Products.ERP5Type.Utils import str2bytes
portal = context.getPortalObject() portal = context.getPortalObject()
compute_node = context compute_node = context
...@@ -15,7 +17,7 @@ document = portal.consumption_document_module.newContent( ...@@ -15,7 +17,7 @@ document = portal.consumption_document_module.newContent(
title="%s consumption (%s)" % (compute_node.getReference(), source_reference), title="%s consumption (%s)" % (compute_node.getReference(), source_reference),
reference=reference, reference=reference,
version=version, version=version,
data=consumption_xml, data=str2bytes(consumption_xml),
classification="personal", classification="personal",
publication_section="other", publication_section="other",
contributor_value=compute_node, contributor_value=compute_node,
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
from erp5.component.test.SlapOSTestCaseMixin import \ from erp5.component.test.SlapOSTestCaseMixin import \
SlapOSTestCaseMixinWithAbort, SlapOSTestCaseMixin, simulate SlapOSTestCaseMixinWithAbort, SlapOSTestCaseMixin, simulate
from Products.ERP5Type.Utils import str2bytes
from zExceptions import Unauthorized from zExceptions import Unauthorized
from unittest import expectedFailure from unittest import expectedFailure
...@@ -149,13 +151,13 @@ class TestSlapOSComputerConsumptionTioXMLFile_parseXml(SlapOSTestCaseMixinWithAb ...@@ -149,13 +151,13 @@ class TestSlapOSComputerConsumptionTioXMLFile_parseXml(SlapOSTestCaseMixinWithAb
def test_parseXml_no_xml(self): def test_parseXml_no_xml(self):
document = self.createTioXMLFile() document = self.createTioXMLFile()
document.edit(data="<?xml version='1.0' encoding='utf-8'?><foo></foo>") document.edit(data=str2bytes("<?xml version='1.0' encoding='utf-8'?><foo></foo>"))
result = document.ComputerConsumptionTioXMLFile_parseXml() result = document.ComputerConsumptionTioXMLFile_parseXml()
self.assertEqual(result, None) self.assertEqual(result, None)
def test_parseXml_invalid_xml(self): def test_parseXml_invalid_xml(self):
document = self.createTioXMLFile() document = self.createTioXMLFile()
document.edit(data="<xml></foo>") document.edit(data=str2bytes("<xml></foo>"))
result = document.ComputerConsumptionTioXMLFile_parseXml() result = document.ComputerConsumptionTioXMLFile_parseXml()
self.assertEqual(result, None) self.assertEqual(result, None)
...@@ -186,7 +188,7 @@ class TestSlapOSComputerConsumptionTioXMLFile_parseXml(SlapOSTestCaseMixinWithAb ...@@ -186,7 +188,7 @@ class TestSlapOSComputerConsumptionTioXMLFile_parseXml(SlapOSTestCaseMixinWithAb
</movement> </movement>
</transaction> </transaction>
</journal>""" </journal>"""
document.edit(data=consumption_xml) document.edit(data=str2bytes(consumption_xml))
result = document.ComputerConsumptionTioXMLFile_parseXml() result = document.ComputerConsumptionTioXMLFile_parseXml()
self.assertEqual(result, { self.assertEqual(result, {
'title': 'Resource consumptionsé', 'title': 'Resource consumptionsé',
...@@ -235,7 +237,7 @@ class TestSlapOSComputerConsumptionTioXMLFile_parseXml(SlapOSTestCaseMixinWithAb ...@@ -235,7 +237,7 @@ class TestSlapOSComputerConsumptionTioXMLFile_parseXml(SlapOSTestCaseMixinWithAb
</movement> </movement>
</transaction> </transaction>
</journal>""" </journal>"""
document.edit(data=consumption_xml) document.edit(data=str2bytes(consumption_xml))
result = document.ComputerConsumptionTioXMLFile_parseXml() result = document.ComputerConsumptionTioXMLFile_parseXml()
self.assertEqual(result, { self.assertEqual(result, {
'title': 'Resource consumptionsé', 'title': 'Resource consumptionsé',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment