Commit f79a9ea8 authored by Rafael Monnerat's avatar Rafael Monnerat 👻

slapos_accounting: Fixup for py3 on bytes Vs str inconsistencies

parent e4681d73
......@@ -28,24 +28,25 @@
from lxml import etree
from zExceptions import Unauthorized
import pkg_resources
from six import StringIO
from io import BytesIO
from Products.ERP5Type.Utils import str2bytes
def ComputerConsumptionTioXMLFile_parseXml(self, REQUEST=None):
"""Call bang on self."""
if REQUEST is not None:
raise Unauthorized
xml = self.getData("")
compute_node_consumption_model = \
pkg_resources.resource_string(
'slapos.slap', 'doc/computer_consumption.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 = etree.XMLSchema(xmlschema_doc)
string_to_validate = StringIO(xml)
xml = self.getData(str2bytes(""))
string_to_validate = BytesIO(xml)
try:
tree = etree.parse(string_to_validate)
......
......@@ -2,6 +2,8 @@ from zExceptions import Unauthorized
if REQUEST is not None:
raise Unauthorized
from Products.ERP5Type.Utils import str2bytes
portal = context.getPortalObject()
compute_node = context
......@@ -15,7 +17,7 @@ document = portal.consumption_document_module.newContent(
title="%s consumption (%s)" % (compute_node.getReference(), source_reference),
reference=reference,
version=version,
data=consumption_xml,
data=str2bytes(consumption_xml),
classification="personal",
publication_section="other",
contributor_value=compute_node,
......
......@@ -7,6 +7,8 @@
from erp5.component.test.SlapOSTestCaseMixin import \
SlapOSTestCaseMixinWithAbort, SlapOSTestCaseMixin, simulate
from Products.ERP5Type.Utils import str2bytes
from zExceptions import Unauthorized
from unittest import expectedFailure
......@@ -149,13 +151,13 @@ class TestSlapOSComputerConsumptionTioXMLFile_parseXml(SlapOSTestCaseMixinWithAb
def test_parseXml_no_xml(self):
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()
self.assertEqual(result, None)
def test_parseXml_invalid_xml(self):
document = self.createTioXMLFile()
document.edit(data="<xml></foo>")
document.edit(data=str2bytes("<xml></foo>"))
result = document.ComputerConsumptionTioXMLFile_parseXml()
self.assertEqual(result, None)
......@@ -186,7 +188,7 @@ class TestSlapOSComputerConsumptionTioXMLFile_parseXml(SlapOSTestCaseMixinWithAb
</movement>
</transaction>
</journal>"""
document.edit(data=consumption_xml)
document.edit(data=str2bytes(consumption_xml))
result = document.ComputerConsumptionTioXMLFile_parseXml()
self.assertEqual(result, {
'title': 'Resource consumptionsé',
......@@ -235,7 +237,7 @@ class TestSlapOSComputerConsumptionTioXMLFile_parseXml(SlapOSTestCaseMixinWithAb
</movement>
</transaction>
</journal>"""
document.edit(data=consumption_xml)
document.edit(data=str2bytes(consumption_xml))
result = document.ComputerConsumptionTioXMLFile_parseXml()
self.assertEqual(result, {
'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