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
Titouan Soulard
slapos.core
Commits
afe602ef
Commit
afe602ef
authored
Feb 01, 2012
by
Romain Courteaud
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WIP test for partition locking
parent
986dd36f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
902 additions
and
42 deletions
+902
-42
master/product/Vifib/tests/testVifibSlapComputerPartitionLock.py
...product/Vifib/tests/testVifibSlapComputerPartitionLock.py
+888
-42
master/product/Vifib/tests/testVifibSlapWebService.py
master/product/Vifib/tests/testVifibSlapWebService.py
+14
-0
No files found.
master/product/Vifib/tests/testVifibSlapComputerPartitionLock.py
View file @
afe602ef
...
@@ -4,84 +4,930 @@ from testVifibSlapWebService import TestVifibSlapWebServiceMixin
...
@@ -4,84 +4,930 @@ from testVifibSlapWebService import TestVifibSlapWebServiceMixin
from
Products.DCWorkflow.DCWorkflow
import
ValidationFailed
from
Products.DCWorkflow.DCWorkflow
import
ValidationFailed
from
random
import
random
from
random
import
random
from
slapos
import
slap
from
slapos
import
slap
from
AccessControl
import
Unauthorized
class
TestVifibSlapComputerPartitionLock
(
TestVifibSlapWebServiceMixin
):
class
TestVifibSlapComputerPartitionLock
(
TestVifibSlapWebServiceMixin
):
def
test_lock_building
(
self
):
def
stepCheckPersonPaymentState
(
self
,
sequence
,
**
kw
):
"""Check locking building computer partition
"""
Check that person payment state is the same than slap state
"""
person
=
self
.
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
()
self
.
assertEquals
(
'open_order_created'
,
person
.
getSlapState
())
self
.
assertEquals
(
person
.
getSlapState
(),
person
.
getPaymentState
())
def
test_person_payment_state
(
self
):
"""Person payment state value is the same than slap state
"""
sequence_list
=
SequenceList
()
sequence_string
=
'
\
LoginDefaultUser
\
CheckPersonPaymentState
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
stepCheckPersonLockedState
(
self
,
sequence
,
**
kw
):
"""
Check that person payment state is the same than slap state
"""
person
=
self
.
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
()
self
.
assertEquals
(
'locked'
,
person
.
getSlapState
())
def
stepCheckPersonOpenOrderCreatedState
(
self
,
sequence
,
**
kw
):
"""
Check that person payment state is the same than slap state
"""
person
=
self
.
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
()
self
.
assertEquals
(
'open_order_created'
,
person
.
getSlapState
())
It shall render it as stopped and disallow any operation.
register_new_user_sequence_string
=
'
\
Logout
\
RequestCredentialFromWebSite
\
Tic
\
LoginDefaultUser
\
SubmitCredentialRequest
\
Tic
\
AcceptSubmittedCredentialsActiveSense
\
Tic
\
Logout
\
'
create_new_user_instance_sequence_string
=
'
\
LoginWebUser
\
PersonRequestSoftwareInstance
\
Tic
\
Logout
\
\
LoginDefaultUser
\
ConfirmOrderedSaleOrderActiveSense
\
Tic
\
SetSelectedComputerPartition
\
SelectCurrentlyUsedSalePackingListUid
\
Logout
\
'
def
test_person_locked_by_default
(
self
):
"""Newly registered customer are locked by default
"""
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
LoginWebUser
\
CheckPersonLockedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
stepPersonRequestIsForbidden
(
self
,
sequence
,
**
kw
):
person
=
self
.
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
()
software_release
=
self
.
portal
.
portal_catalog
.
getResultValue
(
uid
=
sequence
[
'software_release_uid'
])
software_title
=
sequence
.
get
(
'software_title'
,
self
.
id
()
+
str
(
random
()))
self
.
assertRaises
(
Unauthorized
,
person
.
requestSoftwareInstance
,
software_release
=
software_release
.
getUrlString
(),
software_title
=
software_title
,
instance_xml
=
self
.
minimal_correct_xml
,
sla_xml
=
sequence
.
get
(
'sla_xml'
),
**
kw
)
def
test_locked_person_request
(
self
):
"""Locked person can not request
"""
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
prepare_installed_software_release_sequence_string
+
\
self
.
register_new_user_sequence_string
+
'
\
LoginWebUser
\
CheckPersonLockedState
\
PersonRequestIsForbidden
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
stepUnlockPerson
(
self
,
sequence
,
**
kw
):
"""
Trigger global person unlocking
"""
self
.
portal
.
portal_alarms
.
unlock_person_XXX
.
activeSense
()
Destruction shall be possible.
def
stepLockPerson
(
self
,
sequence
,
**
kw
):
"""
"""
raise
NotImplementedError
Trigger global person locking
"""
self
.
portal
.
portal_alarms
.
unlock_person_XXX
.
activeSense
()
def
test_lock_stopping
(
self
):
def
test_automated_person_without_payment_unlocking
(
self
):
"""Check locking stopping computer partition
"""Test that a person is automatically unlocked by an alarm if no payment
"""
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonOpenOrderCreatedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
It shall render it as stopped and disallow any operation.
def
test_automated_person_without_payment_not_locking
(
self
):
"""Test that a person is not automatically locked by an alarm if no payment
"""
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonOpenOrderCreatedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
LockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonOpenOrderCreatedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
Stopping shall be possible.
def
stepCreateSmallPayment
(
self
,
sequence
,
**
kw
):
person
=
self
.
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
(
sequence
[
'web_user'
])
payment_transaction
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
start_date
=
DateTime
(),
# XXX More info needed
)
payment_transaction_line
=
payment_transaction
.
newContent
(
portal_type
=
"Accounting Transaction Line"
,
# XXX More info needed
)
payment_transaction
.
confirm
()
# XXX More info needed
payment_transaction
.
checkConsistency
()
Destruction shall be possible.
def
test_automated_person_small_not_paid_not_locking
(
self
):
"""Test that a person is not automatically locked by an alarm if
recent small payment is not paid yet
"""
"""
raise
NotImplementedError
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonOpenOrderCreatedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CreatePastSmallPayment
\
Tic
\
Logout
\
\
LockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonOpenOrderCreatedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
test_lock_stopped
(
self
):
def
stepCreatePastNotPaidPayment
(
self
,
sequence
,
**
kw
):
"""Check locking stopped computer partition
person
=
self
.
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
(
sequence
[
'web_user'
])
payment_transaction
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
start_date
=
DateTime
()
-
15
,
# XXX More info needed
)
payment_transaction_line
=
payment_transaction
.
newContent
(
portal_type
=
"Accounting Transaction Line"
,
# XXX More info needed
)
payment_transaction
.
confirm
()
# XXX More info needed
payment_transaction
.
checkConsistency
()
def
test_automated_person_past_not_paid_locking
(
self
):
"""Test that a person is automatically locked by an alarm if payment has
not been done for a long time.
"""
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonOpenOrderCreatedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CreatePastNotPaidPayment
\
Tic
\
Logout
\
\
LockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonLockedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
It shall render it as stopped and disallow any operation.
def
stepCreateHighBalanceNotPaidPayment
(
self
,
sequence
,
**
kw
):
person
=
self
.
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
(
sequence
[
'web_user'
])
payment_transaction
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
start_date
=
DateTime
(),
# XXX More info needed
)
payment_transaction_line
=
payment_transaction
.
newContent
(
portal_type
=
"Accounting Transaction Line"
,
quantity
=
10000
,
# XXX More info needed
)
payment_transaction
.
confirm
()
# XXX More info needed
payment_transaction
.
checkConsistency
()
Destruction shall be possible.
def
test_automated_person_high_not_paid_locking
(
self
):
"""Test that a person is automatically locked by an alarm if payment has
an high quantity
"""
"""
raise
NotImplementedError
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonOpenOrderCreatedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CreateHighBalanceNotPaidPayment
\
Tic
\
Logout
\
\
LockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonLockedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
test_lock_starting
(
self
):
def
test_automated_person_with_ongoing_payment_unlocking
(
self
):
"""Check locking starting computer partition
"""Test that a person is can not be unlocked if there is an ongoing
payment.
Unlocking alarm doesn't have to know why user is locked.
"""
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
\
LoginERP5TypeTestCase
\
CreatePastSmallPayment
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonLockedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
It shall render it as stopped and disallow any operation.
def
test_automated_person_with_delivered_payment_unlocking
(
self
):
"""Test that a person is can be unlocked if payment are delivered
"""
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
\
LoginERP5TypeTestCase
\
CreatePastSmallPayment
\
Tic
\
DeliverPayment
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonOpenOrderCreatedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
Stopping shall be possible.
def
test_automated_person_with_cancelled_payment_unlocking
(
self
):
"""Test that a person is can be unlocked if payment are cancelled
"""
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
\
LoginERP5TypeTestCase
\
CreatePastSmallPayment
\
Tic
\
CancelPayment
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
\
LoginWebUser
\
CheckPersonOpenOrderCreatedState
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
Destruction shall be possible.
def
test_automated_software_instance_unlock
(
self
):
"""Locked person's instance are automatically locked
"""
"""
raise
NotImplementedError
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
prepare_installed_software_release_sequence_string
+
\
self
.
register_new_user_sequence_string
+
'
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
'
+
\
self
.
create_new_user_instance_sequence_string
+
'
\
LoginERP5TypeTestCase
\
CreateHighBalanceNotPaidPayment
\
Tic
\
\
LockPerson
\
Tic
\
CheckInstanceLocked
\
\
DeliverPayment
\
Tic
\
CheckInstanceUnlocked
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
stepInstanceRequestIsForbidden
(
self
,
sequence
,
**
kw
):
self
.
slap
=
slap
.
slap
()
self
.
slap
.
initializeConnection
(
self
.
server_url
,
timeout
=
None
)
slap_computer_partition
=
self
.
slap
.
registerComputerPartition
(
sequence
[
'computer_reference'
],
sequence
[
'computer_partition_reference'
])
kw
=
dict
(
software_release
=
sequence
[
'software_release_uri'
],
software_type
=
sequence
.
get
(
'requested_software_type'
,
'requested_software_type'
),
partition_reference
=
sequence
.
get
(
'requested_reference'
,
'requested_reference'
),
partition_parameter_kw
=
sequence
.
get
(
'requested_parameter_dict'
,
{}),
filter_kw
=
sequence
.
get
(
'requested_filter_dict'
,
{}),
state
=
sequence
.
get
(
'instance_state'
))
self
.
assertRaises
(
slap
.
Unauthorized
,
slap_computer_partition
.
request
,
**
kw
)
def
test_lock_started
(
self
):
def
new_instance_string
(
self
):
"""Check locking started computer partition
return
\
self
.
prepare_installed_software_release_sequence_string
+
\
self
.
register_new_user_sequence_string
+
'
\
LoginERP5TypeTestCase
\
UnlockPerson
\
Tic
\
Logout
\
'
+
\
self
.
create_new_user_instance_sequence_string
It shall render it as stopped and disallow starting.
def
lock_user_string
(
self
):
return
'
\
LoginERP5TypeTestCase
\
CreateHighBalanceNotPaidPayment
\
Tic
\
\
LockPerson
\
Tic
\
Logout
\
'
Stopping shall be possible.
def
test_locked_instance_request
(
self
):
"""Locked person's instance can not request
"""
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
\
self
.
lock_user_string
()
+
'
\
\
SlapLoginCurrentSoftwareInstance
\
InstanceRequestIsForbidden
\
SlapLogout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
test_lock_software_instance_requested
(
self
):
"""Locked person's requested instance are automatically locked
"""
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceLocked
\
CheckStoppedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
test_lock_software_instance_building
(
self
):
"""Locked person's building instance are automatically locked
"""
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
'
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceBuilding
\
Tic
\
SlapLogout
\
'
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceLocked
\
CheckStoppedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
Destruction shall be possible.
def
test_lock_software_instance_installed
(
self
):
"""Locked person's installed instance are automatically locked
"""
"""
raise
NotImplementedError
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
'
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceBuilding
\
Tic
\
SoftwareInstanceAvailable
\
Tic
\
SlapLogout
\
'
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceLocked
\
CheckStoppedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
test_lock_destroying
(
self
):
def
test_lock_software_instance_starting
(
self
):
"""Check locking destroying computer partition
"""Locked person's starting instance are automatically locked
"""
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
'
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceBuilding
\
Tic
\
SoftwareInstanceAvailable
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceStart
\
Tic
\
Logout
\
'
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceLocked
\
CheckStoppedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
It shall render it as destroyed.
def
test_lock_software_instance_started
(
self
):
"""Locked person's started instance are automatically locked
"""
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
'
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceBuilding
\
Tic
\
SoftwareInstanceAvailable
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceStart
\
Tic
\
Logout
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceStarted
\
Tic
\
SlapLogout
\
'
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceLocked
\
CheckStoppedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
Destruction shall be possible.
def
test_lock_software_instance_stopping
(
self
):
"""Locked person's stopping instance are automatically locked
"""
"""
raise
NotImplementedError
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
'
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceBuilding
\
Tic
\
SoftwareInstanceAvailable
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceStart
\
Tic
\
Logout
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceStarted
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceStop
\
Tic
\
Logout
\
'
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceLocked
\
CheckStoppedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
test_lock_destroyed
(
self
):
def
test_lock_software_instance_stopped
(
self
):
"""Check locking destroyed computer partition
"""Locked person's stopped instance are automatically locked
"""
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
'
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceBuilding
\
Tic
\
SoftwareInstanceAvailable
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceStart
\
Tic
\
Logout
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceStarted
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceStop
\
Tic
\
Logout
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceStopped
\
Tic
\
SlapLogout
\
'
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceLocked
\
CheckStoppedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
It shall not render it at all.
def
test_lock_software_instance_update
(
self
):
"""Locked person's updated instance are automatically locked
"""
"""
raise
NotImplementedError
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
'
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceBuilding
\
Tic
\
SoftwareInstanceAvailable
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceStart
\
Tic
\
Logout
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceStarted
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceUpdate
\
Tic
\
Logout
\
'
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceLocked
\
CheckStoppedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
test_lock_update
(
self
):
def
test_lock_software_instance_destroying
(
self
):
"""Check locking update computer partition
"""Locked person's destroying instance are not automatically locked
"""
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
'
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceBuilding
\
Tic
\
SoftwareInstanceAvailable
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceStart
\
Tic
\
Logout
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceStarted
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceDestroy
\
Tic
\
Logout
\
'
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceNotLocked
\
CheckDestroyedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
It shall render as stopped.
def
test_lock_software_instance_destroyed
(
self
):
"""Locked person's destroyed instance are not automatically locked
"""
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
'
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceBuilding
\
Tic
\
SoftwareInstanceAvailable
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceStart
\
Tic
\
Logout
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceStarted
\
Tic
\
SlapLogout
\
\
LoginWebUser
\
RequestSoftwareInstanceDestroy
\
Tic
\
Logout
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceDestroyed
\
Tic
\
SlapLogout
\
'
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceNotLocked
\
CheckDestroyedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
Destruction shall be possible.
def
test_lock_software_instance_can_be_destroyed
(
self
):
"""Locked person's instance can be destroyed
"""
"""
raise
NotImplementedError
sequence_list
=
SequenceList
()
sequence_string
=
\
self
.
new_instance_string
()
+
\
self
.
lock_user_string
()
+
'
\
LoginERP5TypeTestCase
\
CheckInstanceLocked
\
CheckStoppedComputerPartitionGetStateCall
\
Logout
\
\
LoginWebUser
\
RequestSoftwareInstanceDestroy
\
Tic
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckInstanceNotLocked
\
CheckDestroyedComputerPartitionGetStateCall
\
Logout
\
\
SlapLoginCurrentComputer
\
SoftwareInstanceDestroyed
\
Tic
\
SlapLogout
\
\
LoginERP5TypeTestCase
\
CheckInstanceNotLocked
\
CheckDestroyedComputerPartitionGetStateCall
\
Logout
\
\
LoginERP5TypeTestCase
\
CheckSiteConsistency
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
test_suite
():
def
test_suite
():
suite
=
unittest
.
TestSuite
()
suite
=
unittest
.
TestSuite
()
...
...
master/product/Vifib/tests/testVifibSlapWebService.py
View file @
afe602ef
...
@@ -949,6 +949,20 @@ class TestVifibSlapWebServiceMixin(testVifibMixin):
...
@@ -949,6 +949,20 @@ class TestVifibSlapWebServiceMixin(testVifibMixin):
Logout
Logout
"""
"""
prepare_installed_software_release_sequence_string
=
\
prepare_published_software_release
+
\
prepare_formated_computer
+
"""
LoginTestVifibAdmin
RequestSoftwareInstallation
Tic
Logout
SlapLoginCurrentComputer
ComputerSoftwareReleaseAvailable
Tic
SlapLogout
"""
prepare_person_requested_software_instance
=
\
prepare_person_requested_software_instance
=
\
prepare_published_software_release
+
\
prepare_published_software_release
+
\
prepare_formated_computer
+
"""
prepare_formated_computer
+
"""
...
...
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