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
1
Merge Requests
1
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
Romain Courteaud
slapos.core
Commits
3f239154
Commit
3f239154
authored
Nov 14, 2012
by
Łukasz Nowak
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve code reusability.
parent
40a3cc36
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
118 additions
and
108 deletions
+118
-108
master/bt5/slapos_cloud/TestTemplateItem/testSlapOSCloudConstraint.py
...lapos_cloud/TestTemplateItem/testSlapOSCloudConstraint.py
+117
-107
master/bt5/slapos_cloud/bt/revision
master/bt5/slapos_cloud/bt/revision
+1
-1
No files found.
master/bt5/slapos_cloud/TestTemplateItem/testSlapOSCloudConstraint.py
View file @
3f239154
...
...
@@ -8,31 +8,32 @@ from Products.SlapOS.tests.testSlapOSMixin import \
testSlapOSMixin
import
transaction
def
getMessageList
(
o
):
return
[
str
(
q
.
getMessage
())
for
q
in
o
.
checkConsistency
()]
class
TestSlapOSConstraintMixin
(
testSlapOSMixin
):
def
_test_property_existence
(
self
,
property_id
,
consistency_message
,
@
staticmethod
def
getMessageList
(
o
):
return
[
str
(
q
.
getMessage
())
for
q
in
o
.
checkConsistency
()]
def
_test_property_existence
(
self
,
obj
,
property_id
,
consistency_message
,
value
=
'A'
):
self
.
software_instance
.
edit
(
**
{
property_id
:
value
})
obj
.
edit
(
**
{
property_id
:
value
})
# fetch basic list of consistency messages
current_message_list
=
getMessageList
(
self
.
software_instance
)
current_message_list
=
self
.
getMessageList
(
obj
)
# test the test: no expected message found
self
.
assertFalse
(
consistency_message
in
current_message_list
)
# required
self
.
software_instance
.
edit
(
**
{
property_id
:
None
})
self
.
assertTrue
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
obj
.
edit
(
**
{
property_id
:
None
})
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
obj
))
self
.
software_instance
.
edit
(
**
{
property_id
:
''
})
self
.
assertTrue
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
obj
.
edit
(
**
{
property_id
:
''
})
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
obj
))
self
.
software_instance
.
edit
(
**
{
property_id
:
value
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
obj
.
edit
(
**
{
property_id
:
value
})
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
obj
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
obj
))
class
TestSlapOSComputerPartitionConstraint
(
TestSlapOSConstraintMixin
):
def
test_non_busy_partition_has_no_related_instance
(
self
):
...
...
@@ -53,15 +54,15 @@ class TestSlapOSComputerPartitionConstraint(TestSlapOSConstraintMixin):
"arity is equal to 1 but should be between 0 and 0"
# test the test: no expected message found
current_message_list
=
getMessageList
(
partition
)
current_message_list
=
self
.
getMessageList
(
partition
)
self
.
assertFalse
(
consistency_message
in
current_message_list
)
# check case for Software Instance
software_instance
.
setAggregate
(
partition
.
getRelativeUrl
())
software_instance
.
immediateReindexObject
()
self
.
assertTrue
(
consistency_message
in
getMessageList
(
partition
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
partition
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
partition
,
'busy'
)
self
.
assertFalse
(
consistency_message
in
getMessageList
(
partition
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
partition
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
partition
,
'free'
)
software_instance
.
setAggregate
(
None
)
software_instance
.
immediateReindexObject
()
...
...
@@ -69,9 +70,9 @@ class TestSlapOSComputerPartitionConstraint(TestSlapOSConstraintMixin):
# check case fo Slave Instance
slave_instance
.
setAggregate
(
partition
.
getRelativeUrl
())
slave_instance
.
immediateReindexObject
()
self
.
assertTrue
(
consistency_message
in
getMessageList
(
partition
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
partition
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
partition
,
'busy'
)
self
.
assertFalse
(
consistency_message
in
getMessageList
(
partition
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
partition
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
partition
,
'free'
)
class
TestSlapOSSoftwareInstanceConstraint
(
TestSlapOSConstraintMixin
):
...
...
@@ -84,7 +85,7 @@ class TestSlapOSSoftwareInstanceConstraint(TestSlapOSConstraintMixin):
def
test_connection_xml
(
self
):
# fetch basic list of consistency messages
current_message_list
=
getMessageList
(
self
.
software_instance
)
current_message_list
=
self
.
getMessageList
(
self
.
software_instance
)
consistency_message
=
"Connection XML is invalid: Start tag expected, '<' not "
\
"found, line 1, column 1"
...
...
@@ -95,23 +96,24 @@ class TestSlapOSSoftwareInstanceConstraint(TestSlapOSConstraintMixin):
# connection_xml is optional
self
.
software_instance
.
edit
(
connection_xml
=
None
)
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
connection_xml
=
''
)
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
# if available shall be correct XML
self
.
software_instance
.
edit
(
connection_xml
=
'this is bad xml'
)
self
.
assertTrue
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
connection_xml
=
self
.
generateEmptyXml
())
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
def
test_property_existence_destination_reference
(
self
):
self
.
_test_property_existence
(
'destination_reference'
,
self
.
_test_property_existence
(
self
.
software_instance
,
'destination_reference'
,
'Property existence error for property destination_reference, this document'
' has no such property or the property has never been set'
)
...
...
@@ -122,17 +124,18 @@ class TestSlapOSSoftwareInstanceConstraint(TestSlapOSConstraintMixin):
'has never been set'
# not required in draft state
self
.
software_instance
.
edit
(
**
{
property_id
:
None
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
**
{
property_id
:
''
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
self
.
software_instance
,
'start_requested'
)
self
.
_test_property_existence
(
property_id
,
consistency_message
)
self
.
_test_property_existence
(
self
.
software_instance
,
property_id
,
consistency_message
)
def
test_property_existence_reference
(
self
):
self
.
_test_property_existence
(
'reference'
,
self
.
_test_property_existence
(
self
.
software_instance
,
'reference'
,
'Property existence error for property reference, this document'
' has no such property or the property has never been set'
)
...
...
@@ -141,30 +144,32 @@ class TestSlapOSSoftwareInstanceConstraint(TestSlapOSConstraintMixin):
consistency_message
=
'Property existence error for property '
\
'ssl_certificate, this document has no such property or the property'
\
' has never been set'
self
.
_test_property_existence
(
property_id
,
consistency_message
)
self
.
_test_property_existence
(
self
.
software_instance
,
property_id
,
consistency_message
)
# not required in destroy_requested state
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
self
.
software_instance
,
'destroy_requested'
)
self
.
software_instance
.
edit
(
**
{
property_id
:
None
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
**
{
property_id
:
''
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
def
test_property_existence_ssl_key
(
self
):
property_id
=
'ssl_key'
consistency_message
=
'Property existence error for property '
\
'ssl_key, this document has no such property or the property'
\
' has never been set'
self
.
_test_property_existence
(
property_id
,
consistency_message
)
self
.
_test_property_existence
(
self
.
software_instance
,
property_id
,
consistency_message
)
# not required in destroy_requested state
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
self
.
software_instance
,
'destroy_requested'
)
self
.
software_instance
.
edit
(
**
{
property_id
:
None
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
**
{
property_id
:
''
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
def
test_predecessor_related
(
self
):
software_instance2
=
self
.
portal
.
software_instance_module
.
newContent
(
...
...
@@ -173,7 +178,7 @@ class TestSlapOSSoftwareInstanceConstraint(TestSlapOSConstraintMixin):
portal_type
=
'Software Instance'
)
# fetch basic list of consistency messages
current_message_list
=
getMessageList
(
self
.
software_instance
)
current_message_list
=
self
.
getMessageList
(
self
.
software_instance
)
consistency_message
=
"There is more then one related predecessor"
...
...
@@ -184,23 +189,23 @@ class TestSlapOSSoftwareInstanceConstraint(TestSlapOSConstraintMixin):
software_instance2
.
edit
(
predecessor
=
self
.
software_instance
.
getRelativeUrl
())
software_instance3
.
edit
(
predecessor
=
self
.
software_instance
.
getRelativeUrl
())
self
.
tic
()
self
.
assertTrue
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
# one is good
software_instance2
.
edit
(
predecessor
=
None
)
self
.
tic
()
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
# none is good
software_instance3
.
edit
(
predecessor
=
None
)
self
.
tic
()
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
def
test_sla_xml
(
self
):
# fetch basic list of consistency messages
current_message_list
=
getMessageList
(
self
.
software_instance
)
current_message_list
=
self
.
getMessageList
(
self
.
software_instance
)
consistency_message
=
"Sla XML is invalid: Start tag expected, '<' not "
\
"found, line 1, column 1"
...
...
@@ -211,24 +216,24 @@ class TestSlapOSSoftwareInstanceConstraint(TestSlapOSConstraintMixin):
# sla_xml is optional
self
.
software_instance
.
edit
(
sla_xml
=
None
)
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
sla_xml
=
''
)
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
# if available shall be correct XML
self
.
software_instance
.
edit
(
sla_xml
=
'this is bad xml'
)
self
.
assertTrue
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
sla_xml
=
self
.
generateEmptyXml
())
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
def
test_text_content
(
self
):
# fetch basic list of consistency messages
current_message_list
=
getMessageList
(
self
.
software_instance
)
current_message_list
=
self
.
getMessageList
(
self
.
software_instance
)
consistency_message
=
"Instance XML is invalid: Start tag expected, '<' not "
\
"found, line 1, column 1"
...
...
@@ -239,20 +244,20 @@ class TestSlapOSSoftwareInstanceConstraint(TestSlapOSConstraintMixin):
# text_content is optional
self
.
software_instance
.
edit
(
text_content
=
None
)
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
text_content
=
''
)
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
# if available shall be correct XML
self
.
software_instance
.
edit
(
text_content
=
'this is bad xml'
)
self
.
assertTrue
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
text_content
=
self
.
generateEmptyXml
())
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
class
TestSlapOSSlaveInstanceConstraint
(
TestSlapOSConstraintMixin
):
def
afterSetUp
(
self
):
...
...
@@ -269,14 +274,15 @@ class TestSlapOSSlaveInstanceConstraint(TestSlapOSConstraintMixin):
property_id
=
'source_reference'
# not required in draft state
self
.
software_instance
.
edit
(
**
{
property_id
:
None
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
**
{
property_id
:
''
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
self
.
software_instance
,
'start_requested'
)
self
.
_test_property_existence
(
property_id
,
consistency_message
)
self
.
_test_property_existence
(
self
.
software_instance
,
property_id
,
consistency_message
)
def
test_property_existence_text_content
(
self
):
consistency_message
=
'Property existence error for property '
\
...
...
@@ -285,17 +291,18 @@ class TestSlapOSSlaveInstanceConstraint(TestSlapOSConstraintMixin):
property_id
=
'text_content'
# not required in draft state
self
.
software_instance
.
edit
(
**
{
property_id
:
None
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
**
{
property_id
:
''
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
self
.
software_instance
,
'start_requested'
)
self
.
_test_property_existence
(
property_id
,
consistency_message
)
self
.
_test_property_existence
(
self
.
software_instance
,
property_id
,
consistency_message
)
def
test_property_existence_reference
(
self
):
self
.
_test_property_existence
(
'reference'
,
self
.
_test_property_existence
(
self
.
software_instance
,
'reference'
,
'Property existence error for property reference, this document'
' has no such property or the property has never been set'
)
...
...
@@ -306,7 +313,7 @@ class TestSlapOSSlaveInstanceConstraint(TestSlapOSConstraintMixin):
portal_type
=
'Slave Instance'
)
# fetch basic list of consistency messages
current_message_list
=
getMessageList
(
self
.
software_instance
)
current_message_list
=
self
.
getMessageList
(
self
.
software_instance
)
consistency_message
=
"There is more then one related predecessor"
...
...
@@ -317,19 +324,19 @@ class TestSlapOSSlaveInstanceConstraint(TestSlapOSConstraintMixin):
software_instance2
.
edit
(
predecessor
=
self
.
software_instance
.
getRelativeUrl
())
software_instance3
.
edit
(
predecessor
=
self
.
software_instance
.
getRelativeUrl
())
self
.
tic
()
self
.
assertTrue
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
# one is good
software_instance2
.
edit
(
predecessor
=
None
)
self
.
tic
()
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
# none is good
software_instance3
.
edit
(
predecessor
=
None
)
self
.
tic
()
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
assertSameSet
(
current_message_list
,
self
.
getMessageList
(
self
.
software_instance
))
class
TestSlapOSHostingSubscriptionConstraint
(
TestSlapOSConstraintMixin
):
def
afterSetUp
(
self
):
...
...
@@ -340,12 +347,12 @@ class TestSlapOSHostingSubscriptionConstraint(TestSlapOSConstraintMixin):
transaction
.
abort
()
def
test_property_existence_reference
(
self
):
self
.
_test_property_existence
(
'reference'
,
self
.
_test_property_existence
(
self
.
software_instance
,
'reference'
,
'Property existence error for property reference, this document'
' has no such property or the property has never been set'
)
def
test_property_existence_title
(
self
):
self
.
_test_property_existence
(
'title'
,
self
.
_test_property_existence
(
self
.
software_instance
,
'title'
,
'Property existence error for property title, this document'
' has no such property or the property has never been set'
)
...
...
@@ -356,14 +363,15 @@ class TestSlapOSHostingSubscriptionConstraint(TestSlapOSConstraintMixin):
'has never been set'
# not required in draft state
self
.
software_instance
.
edit
(
**
{
property_id
:
None
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
**
{
property_id
:
''
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
self
.
software_instance
,
'start_requested'
)
self
.
_test_property_existence
(
property_id
,
consistency_message
)
self
.
_test_property_existence
(
self
.
software_instance
,
property_id
,
consistency_message
)
def
test_property_existence_root_slave
(
self
):
property_id
=
'root_slave'
...
...
@@ -372,14 +380,15 @@ class TestSlapOSHostingSubscriptionConstraint(TestSlapOSConstraintMixin):
'has never been set'
# not required in draft state
self
.
software_instance
.
edit
(
**
{
property_id
:
None
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
**
{
property_id
:
''
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
self
.
software_instance
,
'start_requested'
)
self
.
_test_property_existence
(
property_id
,
consistency_message
,
value
=
True
)
self
.
_test_property_existence
(
self
.
software_instance
,
property_id
,
consistency_message
,
value
=
True
)
def
test_property_existence_url_string
(
self
):
property_id
=
'url_string'
...
...
@@ -388,31 +397,32 @@ class TestSlapOSHostingSubscriptionConstraint(TestSlapOSConstraintMixin):
'has never been set'
# not required in draft state
self
.
software_instance
.
edit
(
**
{
property_id
:
None
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
software_instance
.
edit
(
**
{
property_id
:
''
})
self
.
assertFalse
(
consistency_message
in
getMessageList
(
self
.
software_instance
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
self
.
software_instance
))
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
self
.
software_instance
,
'start_requested'
)
self
.
_test_property_existence
(
property_id
,
consistency_message
)
self
.
_test_property_existence
(
self
.
software_instance
,
property_id
,
consistency_message
)
class
TestSlapOSPersonConstraint
(
testSlapOS
Mixin
):
class
TestSlapOSPersonConstraint
(
TestSlapOSConstraint
Mixin
):
def
test_role
(
self
):
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
)
consistency_message
=
'One role should be defined'
self
.
assertTrue
(
consistency_message
in
getMessageList
(
person
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
person
))
role_id_list
=
list
(
self
.
portal
.
portal_categories
.
role
.
objectIds
())
self
.
assertTrue
(
len
(
role_id_list
)
>=
2
)
person
.
setRole
(
role_id_list
[
0
])
self
.
assertFalse
(
consistency_message
in
getMessageList
(
person
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
person
))
person
.
setRoleList
(
role_id_list
)
self
.
assertTrue
(
consistency_message
in
getMessageList
(
person
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
person
))
person
.
setRole
(
role_id_list
[
0
])
self
.
assertFalse
(
consistency_message
in
getMessageList
(
person
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
person
))
def
test_subordination_state
(
self
):
organisation
=
self
.
portal
.
organisation_module
.
newContent
(
...
...
@@ -421,67 +431,67 @@ class TestSlapOSPersonConstraint(testSlapOSMixin):
subordination
=
organisation
.
getRelativeUrl
())
consistency_message
=
'The Organisation is not validated'
self
.
assertTrue
(
consistency_message
in
getMessageList
(
person
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
person
))
organisation
.
validate
()
self
.
assertFalse
(
consistency_message
in
getMessageList
(
person
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
person
))
def
test_email
(
self
):
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
)
consistency_message
=
'Person have to contain an Email'
self
.
assertTrue
(
consistency_message
in
getMessageList
(
person
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
person
))
person
.
newContent
(
portal_type
=
'Email'
)
self
.
assertFalse
(
consistency_message
in
getMessageList
(
person
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
person
))
class
TestSlapOSAssignmentConstraint
(
testSlapOS
Mixin
):
class
TestSlapOSAssignmentConstraint
(
TestSlapOSConstraint
Mixin
):
def
test_parent_person_validated
(
self
):
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
)
assignment
=
person
.
newContent
(
portal_type
=
'Assignment'
)
consistency_message
=
'The person document has to be validated to start '
\
'assignment'
self
.
assertTrue
(
consistency_message
in
getMessageList
(
assignment
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
assignment
))
person
.
validate
()
self
.
assertFalse
(
consistency_message
in
getMessageList
(
assignment
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
assignment
))
class
TestSlapOSEmailConstraint
(
testSlapOS
Mixin
):
class
TestSlapOSEmailConstraint
(
TestSlapOSConstraint
Mixin
):
def
test_url_string_not_empty
(
self
):
email
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
).
newContent
(
portal_type
=
'Email'
)
consistency_message
=
'Email must be defined'
self
.
assertTrue
(
consistency_message
in
getMessageList
(
email
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
email
))
email
.
setUrlString
(
self
.
generateNewId
())
self
.
assertFalse
(
consistency_message
in
getMessageList
(
email
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
email
))
class
TestSlapOSComputerConstraint
(
testSlapOS
Mixin
):
class
TestSlapOSComputerConstraint
(
TestSlapOSConstraint
Mixin
):
def
test_title_not_empty
(
self
):
computer
=
self
.
portal
.
computer_module
.
newContent
(
portal_type
=
'Computer'
)
consistency_message
=
'Title must be defined'
self
.
assertTrue
(
consistency_message
in
getMessageList
(
computer
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
computer
))
computer
.
setTitle
(
self
.
generateNewId
())
self
.
assertFalse
(
consistency_message
in
getMessageList
(
computer
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
computer
))
def
test_reference_not_empty
(
self
):
computer
=
self
.
portal
.
computer_module
.
newContent
(
portal_type
=
'Computer'
)
consistency_message
=
'Reference must be defined'
self
.
assertTrue
(
consistency_message
in
getMessageList
(
computer
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
computer
))
computer
.
setReference
(
self
.
generateNewId
())
self
.
assertFalse
(
consistency_message
in
getMessageList
(
computer
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
computer
))
def
test_reference_unique
(
self
):
reference
=
self
.
generateNewId
()
...
...
@@ -494,11 +504,11 @@ class TestSlapOSComputerConstraint(testSlapOSMixin):
self
.
tic
()
self
.
assertTrue
(
consistency_message
in
getMessageList
(
computer
))
self
.
assertTrue
(
consistency_message
in
getMessageList
(
computer_2
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
computer
))
self
.
assertTrue
(
consistency_message
in
self
.
getMessageList
(
computer_2
))
computer_2
.
setReference
(
reference_2
)
self
.
tic
()
self
.
assertFalse
(
consistency_message
in
getMessageList
(
computer
))
self
.
assertFalse
(
consistency_message
in
getMessageList
(
computer_2
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
computer
))
self
.
assertFalse
(
consistency_message
in
self
.
getMessageList
(
computer_2
))
master/bt5/slapos_cloud/bt/revision
View file @
3f239154
238
\ No newline at end of file
239
\ 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