Commit e0b29d68 authored by Xavier Thompson's avatar Xavier Thompson

slapos_slap_tool: Test updating partitions with capabilities

parent 3f406c32
...@@ -980,3 +980,88 @@ class TestSlapOSCoreComputeNodeUpdateFromDict(SlapOSTestCaseMixinWithAbort): ...@@ -980,3 +980,88 @@ class TestSlapOSCoreComputeNodeUpdateFromDict(SlapOSTestCaseMixinWithAbort):
self.assertEqual(partition.getValidationState(), 'invalidated') self.assertEqual(partition.getValidationState(), 'invalidated')
self.assertEqual(partition.getSlapState(), 'inactive') self.assertEqual(partition.getSlapState(), 'inactive')
self.assertEqual(partition.getId(), 'bar') self.assertEqual(partition.getId(), 'bar')
#############################################
# Compute Partition capabilities
#############################################
def test_CreateSinglePartitionWithCapability(self):
capability = "CAPA-%s" % self.generateNewId()
parameter_dict = {
'partition_list': [{
'reference': 'foo',
'address_list': [],
'tap': {'name': 'bar'},
'capability': capability,
}],
'address': 'a',
'netmask': 'b',
}
self.compute_node.ComputeNode_updateFromDict(parameter_dict)
partition_list = self.compute_node.contentValues(
portal_type='Compute Partition')
self.assertEqual(len(partition_list), 1)
partition = partition_list[0]
self.assertEqual(partition.getReference(), 'foo')
self.assertEqual(partition.getValidationState(), 'validated')
self.assertEqual(partition.getSlapState(), 'free')
self.assertEqual(partition.getSubject(), capability)
def test_UpdatePartitionCapability(self):
partition_dict = {
'reference': 'foo',
'address_list': [],
'tap': {'name': 'bar'},
}
parameter_dict = {
'partition_list': [partition_dict],
'address': 'a',
'netmask': 'b',
}
def check_Partition(subject_list):
partition_list = self.compute_node.contentValues(
portal_type='Compute Partition')
self.assertEqual(len(partition_list), 1)
partition = partition_list[0]
self.assertEqual(partition.getReference(), 'foo')
self.assertEqual(partition.getValidationState(), 'validated')
self.assertEqual(partition.getSlapState(), 'free')
self.assertEqual(partition.getSubjectList(), subject_list)
self.compute_node.ComputeNode_updateFromDict(parameter_dict)
check_Partition([])
capa1 = "CAPA1-%s" % self.generateNewId()
partition_dict['capability'] = capa1
self.compute_node.ComputeNode_updateFromDict(parameter_dict)
check_Partition([capa1])
capa2 = "CAPA2-%s" % self.generateNewId()
partition_dict['capability'] = capa2
self.compute_node.ComputeNode_updateFromDict(parameter_dict)
check_Partition([capa2])
partition_dict['capability'] = '\n'.join((capa1, capa2))
self.compute_node.ComputeNode_updateFromDict(parameter_dict)
check_Partition([capa1, capa2])
# Check order is stable
partition_dict['capability'] = '\n'.join((capa2, capa1))
self.compute_node.ComputeNode_updateFromDict(parameter_dict)
check_Partition([capa1, capa2])
partition_dict['capability'] = ''
self.compute_node.ComputeNode_updateFromDict(parameter_dict)
check_Partition([])
# Check duplicates are removed
partition_dict['capability'] = '\n'.join((capa2, capa2, capa1))
self.compute_node.ComputeNode_updateFromDict(parameter_dict)
check_Partition([capa1, capa2])
del partition_dict['capability']
self.compute_node.ComputeNode_updateFromDict(parameter_dict)
check_Partition([])
...@@ -6,12 +6,6 @@ ...@@ -6,12 +6,6 @@
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
<value> <string>testSlapOSSlapToolComputeNodeUpdateFromDict</string> </value> <value> <string>testSlapOSSlapToolComputeNodeUpdateFromDict</string> </value>
...@@ -55,28 +49,13 @@ ...@@ -55,28 +49,13 @@
<item> <item>
<key> <string>workflow_history</string> </key> <key> <string>workflow_history</string> </key>
<value> <value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="2" aka="AAAAAAAAAAI="> <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> <pickle>
<global name="PersistentMapping" module="Persistence.mapping"/> <global name="PersistentMapping" module="Persistence.mapping"/>
</pickle> </pickle>
...@@ -89,7 +68,7 @@ ...@@ -89,7 +68,7 @@
<item> <item>
<key> <string>component_validation_workflow</string> </key> <key> <string>component_validation_workflow</string> </key>
<value> <value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value> </value>
</item> </item>
</dictionary> </dictionary>
...@@ -98,7 +77,7 @@ ...@@ -98,7 +77,7 @@
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="4" aka="AAAAAAAAAAQ="> <record id="3" aka="AAAAAAAAAAM=">
<pickle> <pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/> <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle> </pickle>
......
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