Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
Rafael Monnerat
slapos.core
Commits
43de2f3a
Commit
43de2f3a
authored
Feb 13, 2025
by
Rafael Monnerat
👻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_accounting: Fixup for py3 on bytes Vs str inconsistencies
parent
42c9eb30
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
9 deletions
+14
-9
master/bt5/slapos_accounting/ExtensionTemplateItem/portal_components/extension.erp5.SlapOSAccounting.py
...Item/portal_components/extension.erp5.SlapOSAccounting.py
+5
-4
master/bt5/slapos_accounting/SkinTemplateItem/portal_skins/slapos_consumption/ComputeNode_reportComputeNodeConsumption.py
...s_consumption/ComputeNode_reportComputeNodeConsumption.py
+3
-1
master/bt5/slapos_accounting/TestTemplateItem/portal_components/test.erp5.testSlapOSConsumptionSkins.py
...portal_components/test.erp5.testSlapOSConsumptionSkins.py
+6
-4
No files found.
master/bt5/slapos_accounting/ExtensionTemplateItem/portal_components/extension.erp5.SlapOSAccounting.py
View file @
43de2f3a
...
@@ -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
=
String
IO
(
compute_node_consumption_model
)
xsd_model
=
Bytes
IO
(
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
)
...
...
master/bt5/slapos_accounting/SkinTemplateItem/portal_skins/slapos_consumption/ComputeNode_reportComputeNodeConsumption.py
View file @
43de2f3a
...
@@ -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
,
...
...
master/bt5/slapos_accounting/TestTemplateItem/portal_components/test.erp5.testSlapOSConsumptionSkins.py
View file @
43de2f3a
...
@@ -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é'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment