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
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
slapos.core
Commits
52696697
Commit
52696697
authored
Mar 23, 2022
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_cloud: Include tests for SoftwareInstance
parent
f0997824
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
286 additions
and
1 deletion
+286
-1
master/bt5/slapos_cloud/TestTemplateItem/portal_components/test.erp5.testSlapOSCloud.py
...mplateItem/portal_components/test.erp5.testSlapOSCloud.py
+151
-0
master/bt5/slapos_cloud/TestTemplateItem/portal_components/test.erp5.testSlapOSCloud.xml
...plateItem/portal_components/test.erp5.testSlapOSCloud.xml
+133
-0
master/bt5/slapos_cloud/bt/template_test_id_list
master/bt5/slapos_cloud/bt/template_test_id_list
+2
-1
No files found.
master/bt5/slapos_cloud/TestTemplateItem/portal_components/test.erp5.testSlapOSCloud.py
0 → 100644
View file @
52696697
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2022 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from
erp5.component.test.SlapOSTestCaseMixin
import
SlapOSTestCaseMixin
class
TestSlapOSCloudSoftwareInstance
(
SlapOSTestCaseMixin
):
def
afterSetUp
(
self
):
SlapOSTestCaseMixin
.
afterSetUp
(
self
)
self
.
_makeTree
()
def
test_getXmlAsDict
(
self
):
simple_parameter_sample_xml
=
"""<?xml version='1.0' encoding='utf-8'?>
<instance>
<parameter id="p1é">v1é</parameter>
<parameter id="p2é">v2é</parameter>
</instance>
"""
self
.
assertEqual
(
self
.
software_instance
.
_getXmlAsDict
(
simple_parameter_sample_xml
),
{
'p1é'
:
'v1é'
,
'p2é'
:
'v2é'
})
def
test_getInstanceXmlAsDict
(
self
):
self
.
software_instance
.
setTextContent
(
"""<?xml version='1.0' encoding='utf-8'?>
<instance>
<parameter id="p1é">v1é</parameter>
<parameter id="p2é">v2é</parameter>
</instance>
"""
)
self
.
assertEqual
(
self
.
software_instance
.
getInstanceXmlAsDict
(),
{
'p1é'
:
'v1é'
,
'p2é'
:
'v2é'
})
def
test_getSlaXmlAsDict
(
self
):
self
.
software_instance
.
setSlaXml
(
"""<?xml version='1.0' encoding='utf-8'?>
<instance>
<parameter id="p1é">v1é</parameter>
<parameter id="p2é">v2é</parameter>
</instance>
"""
)
self
.
assertEqual
(
self
.
software_instance
.
getSlaXmlAsDict
(),
{
'p1é'
:
'v1é'
,
'p2é'
:
'v2é'
})
def
test_getConnectionXmlAsDict
(
self
):
self
.
software_instance
.
setConnectionXml
(
"""<?xml version='1.0' encoding='utf-8'?>
<instance>
<parameter id="p1é">v1é</parameter>
<parameter id="p2é">v2é</parameter>
</instance>
"""
)
self
.
assertEqual
(
self
.
software_instance
.
getConnectionXmlAsDict
(),
{
'p1é'
:
'v1é'
,
'p2é'
:
'v2é'
})
def
test_instanceXmlToDict
(
self
):
simple_parameter_sample_xml
=
"""<?xml version='1.0' encoding='utf-8'?>
<instance>
<parameter id="p1é">v1é</parameter>
<parameter id="p2é">v2é</parameter>
</instance>
"""
self
.
assertEqual
(
self
.
software_instance
.
_instanceXmlToDict
(
simple_parameter_sample_xml
),
# different from getXmlAsDict it don't encode things as utf-8
{
u'p1é'
:
u'v1é'
,
u'p2é'
:
u'v2é'
})
def
test_asParameterDict_not_allocated
(
self
):
self
.
assertRaises
(
ValueError
,
self
.
software_instance
.
_asParameterDict
)
def
test_asParameterDict
(
self
):
self
.
_makeComputeNode
()
self
.
_makeComplexComputeNode
(
with_slave
=
True
)
as_parameter_dict
=
self
.
start_requested_software_instance
.
_asParameterDict
()
self
.
assertSameSet
(
as_parameter_dict
.
keys
(),
[
'instance_guid'
,
'instance_title'
,
'root_instance_title'
,
'root_instance_short_title'
,
'xml'
,
'connection_xml'
,
'filter_xml'
,
'slap_computer_id'
,
'slap_computer_partition_id'
,
'slap_software_type'
,
'slap_software_release_url'
,
'slave_instance_list'
,
'ip_list'
,
'full_ip_list'
,
'timestamp'
])
self
.
assertEqual
(
as_parameter_dict
[
"instance_guid"
],
self
.
start_requested_software_instance
.
getReference
().
decode
(
"UTF-8"
)
)
self
.
assertEqual
(
as_parameter_dict
[
"instance_title"
],
self
.
start_requested_software_instance
.
getTitle
().
decode
(
"UTF-8"
)
)
self
.
assertEqual
(
as_parameter_dict
[
"xml"
],
self
.
start_requested_software_instance
.
getTextContent
()
)
self
.
assertEqual
(
as_parameter_dict
[
"connection_xml"
],
self
.
start_requested_software_instance
.
getConnectionXml
()
)
self
.
assertEqual
(
as_parameter_dict
[
"filter_xml"
],
self
.
start_requested_software_instance
.
getSlaXml
()
)
self
.
assertEqual
(
as_parameter_dict
[
"root_instance_title"
],
self
.
start_requested_software_instance
.
getSpecialiseTitle
().
decode
(
"UTF-8"
))
self
.
assertEqual
(
as_parameter_dict
[
"root_instance_short_title"
],
self
.
start_requested_software_instance
.
getSpecialiseShortTitle
().
decode
(
"UTF-8"
))
self
.
assertEqual
(
as_parameter_dict
[
"slap_computer_id"
],
self
.
compute_node
.
getReference
().
decode
(
"UTF-8"
))
self
.
assertEqual
(
as_parameter_dict
[
"slap_computer_partition_id"
],
"partition1"
)
self
.
assertEqual
(
len
(
as_parameter_dict
[
"slave_instance_list"
]),
1
)
self
.
assertSameSet
(
as_parameter_dict
[
"slave_instance_list"
][
0
].
keys
(),
[
'slave_title'
,
'slap_software_type'
,
'slave_reference'
,
'timestamp'
,
'xml'
,
'connection_xml'
])
self
.
assertEqual
(
self
.
start_requested_slave_instance
.
getTitle
().
decode
(
"UTF-8"
),
as_parameter_dict
[
"slave_instance_list"
][
0
][
"slave_title"
]
)
self
.
assertEqual
(
as_parameter_dict
[
"ip_list"
],
[(
u''
,
u'ip_address_1'
)])
# Since gateway isn't set both are the same.
self
.
assertEqual
(
as_parameter_dict
[
"full_ip_list"
],
[])
def
test_getInstanceTreeIpList
(
self
):
self
.
_makeComputeNode
()
self
.
_makeComplexComputeNode
(
with_slave
=
True
)
self
.
tic
()
self
.
assertEqual
([(
u''
,
u'ip_address_1'
)],
self
.
start_requested_software_instance
.
_getInstanceTreeIpList
())
\ No newline at end of file
master/bt5/slapos_cloud/TestTemplateItem/portal_components/test.erp5.testSlapOSCloud.xml
0 → 100644
View file @
52696697
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_recorded_property_dict
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testSlapOSCloud
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testSlapOSCloud
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAQ=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"4"
aka=
"AAAAAAAAAAQ="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
master/bt5/slapos_cloud/bt/template_test_id_list
View file @
52696697
...
...
@@ -13,4 +13,5 @@ test.erp5.testSlapOSCloudConstraint
test.erp5.testSlapOSCloudUpgrader
test.erp5.testSlapOSCloudShadow
test.erp5.SlapOSTestCaseMixin
test.erp5.SlapOSTestCaseDefaultScenarioMixin
\ No newline at end of file
test.erp5.SlapOSTestCaseDefaultScenarioMixin
test.erp5.testSlapOSCloud
\ No newline at end of file
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