Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
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
Amer
erp5
Commits
e028637b
Commit
e028637b
authored
Jul 18, 2013
by
Benjamin Blanc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
testnode: add isHostingSubscriptionCorrectly method
parent
392574e7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
42 additions
and
21 deletions
+42
-21
erp5/tests/testERP5TestNode.py
erp5/tests/testERP5TestNode.py
+12
-12
erp5/util/testnode/ScalabilityTestRunner.py
erp5/util/testnode/ScalabilityTestRunner.py
+8
-3
erp5/util/testnode/SlapOSMasterCommunicator.py
erp5/util/testnode/SlapOSMasterCommunicator.py
+22
-6
No files found.
erp5/tests/testERP5TestNode.py
View file @
e028637b
...
...
@@ -500,7 +500,7 @@ revision = %(revision2)s
"launchable"
:
False
,
"randomized_path"
:
"azertyuiop"
})
def
patch_isMasterTestnode
(
self
,
*
args
,
**
kw
):
return
(
grade
==
'master'
)
def
patch_is
Instance
Correctly
(
self
,
*
args
,
**
kw
):
def
patch_is
HostingSubscription
Correctly
(
self
,
*
args
,
**
kw
):
return
True
test_self
=
self
test_result_path_root
=
os
.
path
.
join
(
test_self
.
_temp_dir
,
'test/results'
)
...
...
@@ -567,14 +567,14 @@ revision = %(revision2)s
original_generateConfiguration
=
TaskDistributor
.
generateConfiguration
original_isMasterTestnode
=
TaskDistributor
.
isMasterTestnode
original_updateInstanceXML
=
RunnerClass
.
_updateInstanceXML
original_is
InstanceCorrectly
=
SlapOSMasterCommunicator
.
isInstance
Correctly
original_is
HostingSubscriptionCorrectly
=
SlapOSMasterCommunicator
.
isHostingSubscription
Correctly
original_SlapOSMasterCommunicator__init__
=
SlapOSMasterCommunicator
.
__init__
TaskDistributor
.
getSlaposAccountKey
=
patch_getSlaposAccountKey
TaskDistributor
.
getSlaposAccountCertificate
=
patch_getSlaposAccountCertificate
TaskDistributor
.
generateConfiguration
=
patch_generateConfiguration
TaskDistributor
.
isMasterTestnode
=
patch_isMasterTestnode
RunnerClass
.
_updateInstanceXML
=
doNothing
SlapOSMasterCommunicator
.
is
InstanceCorrectly
=
patch_isInstance
Correctly
SlapOSMasterCommunicator
.
is
HostingSubscriptionCorrectly
=
patch_isHostingSubscription
Correctly
SlapOSMasterCommunicator
.
__init__
=
doNothing
original_startTestSuite
=
TaskDistributor
.
startTestSuite
original_subscribeNode
=
TaskDistributor
.
subscribeNode
...
...
@@ -604,7 +604,7 @@ revision = %(revision2)s
TaskDistributor
.
generateConfiguration
=
original_generateConfiguration
TaskDistributor
.
isMasterTestnode
=
original_isMasterTestnode
RunnerClass
.
_updateInstanceXML
=
original_updateInstanceXML
SlapOSMasterCommunicator
.
is
InstanceCorrectly
=
original_isInstance
Correctly
SlapOSMasterCommunicator
.
is
HostingSubscriptionCorrectly
=
original_isHostingSubscription
Correctly
SlapOSMasterCommunicator
.
__init__
=
original_SlapOSMasterCommunicator__init__
TaskDistributor
.
startTestSuite
=
original_startTestSuite
TaskDistributionTool
.
createTestResult
=
original_createTestResult
...
...
@@ -666,7 +666,7 @@ revision = %(revision2)s
"launchable"
:
False
,
"randomized_path"
:
"azertyuiop"
})
def
patch_isMasterTestnode
(
self
,
*
args
,
**
kw
):
return
grade
==
'master'
def
patch_is
Instance
Correctly
(
self
,
*
args
,
**
kw
):
def
patch_is
HostingSubscription
Correctly
(
self
,
*
args
,
**
kw
):
return
True
test_self
=
self
test_result_path_root
=
os
.
path
.
join
(
test_self
.
_temp_dir
,
'test/results'
)
...
...
@@ -721,7 +721,7 @@ revision = %(revision2)s
original_supply
=
SlapOSControler
.
supply
original_request
=
SlapOSControler
.
request
original_updateInstanceXML
=
RunnerClass
.
_updateInstanceXML
original_is
InstanceCorrectly
=
SlapOSMasterCommunicator
.
isInstance
Correctly
original_is
HostingSubscriptionCorrectly
=
SlapOSMasterCommunicator
.
isHostingSubscription
Correctly
original_SlapOSMasterCommunicator__init__
=
SlapOSMasterCommunicator
.
__init__
TaskDistributor
.
getSlaposAccountKey
=
patch_getSlaposAccountKey
TaskDistributor
.
getSlaposAccountCertificate
=
patch_getSlaposAccountCertificate
...
...
@@ -730,7 +730,7 @@ revision = %(revision2)s
SlapOSControler
.
supply
=
doNothing
SlapOSControler
.
request
=
doNothing
RunnerClass
.
_updateInstanceXML
=
doNothing
SlapOSMasterCommunicator
.
is
InstanceCorrectly
=
patch_isInstance
Correctly
SlapOSMasterCommunicator
.
is
HostingSubscriptionCorrectly
=
patch_isHostingSubscription
Correctly
SlapOSMasterCommunicator
.
__init__
=
doNothing
original_startTestSuite
=
TaskDistributor
.
startTestSuite
original_subscribeNode
=
TaskDistributor
.
subscribeNode
...
...
@@ -760,7 +760,7 @@ revision = %(revision2)s
SlapOSControler
.
supply
=
original_supply
SlapOSControler
.
request
=
original_request
SlapOSControler
.
updateInstanceXML
=
original_updateInstanceXML
SlapOSMasterCommunicator
.
is
InstanceCorrectly
=
original_isInstance
Correctly
SlapOSMasterCommunicator
.
is
HostingSubscriptionCorrectly
=
original_isHostingSubscription
Correctly
SlapOSMasterCommunicator
.
__init__
=
original_SlapOSMasterCommunicator__init__
TaskDistributor
.
startTestSuite
=
original_startTestSuite
TaskDistributionTool
.
createTestResult
=
original_createTestResult
...
...
@@ -936,7 +936,7 @@ revision = %(revision2)s
return
"Certificate"
def
patch_getTestType
(
self
,
*
args
,
**
kw
):
return
"ScalabilityTest"
def
patch_is
Instance
Correctly
(
self
,
*
args
,
**
kw
):
def
patch_is
HostingSubscription
Correctly
(
self
,
*
args
,
**
kw
):
return
True
test_self
=
self
test_result_path_root
=
os
.
path
.
join
(
test_self
.
_temp_dir
,
'test/results'
)
...
...
@@ -959,7 +959,7 @@ revision = %(revision2)s
original_supply
=
SlapOSControler
.
supply
original_request
=
SlapOSControler
.
request
original_updateInstanceXML
=
SlapOSControler
.
updateInstanceXML
original_is
InstanceCorrectly
=
SlapOSMasterCommunicator
.
isInstance
Correctly
original_is
HostingSubscriptionCorrectly
=
SlapOSMasterCommunicator
.
isHostingSubscription
Correctly
original_SlapOSMasterCommunicator__init__
=
SlapOSMasterCommunicator
.
__init__
#
...
...
@@ -977,7 +977,7 @@ revision = %(revision2)s
SlapOSControler
.
supply
=
doNothing
SlapOSControler
.
request
=
doNothing
SlapOSControler
.
updateInstanceXML
=
doNothing
SlapOSMasterCommunicator
.
is
InstanceCorrectly
=
patch_isInstance
Correctly
SlapOSMasterCommunicator
.
is
HostingSubscriptionCorrectly
=
patch_isHostingSubscription
Correctly
SlapOSMasterCommunicator
.
__init__
=
doNothing
# Run
test_node
=
self
.
getTestNode
()
...
...
@@ -996,6 +996,6 @@ revision = %(revision2)s
SlapOSControler
.
supply
=
original_supply
SlapOSControler
.
request
=
original_request
SlapOSControler
.
updateInstanceXML
=
original_updateInstanceXML
SlapOSMasterCommunicator
.
is
InstanceCorrectly
=
original_isInstance
Correctly
SlapOSMasterCommunicator
.
is
HostingSubscriptionCorrectly
=
original_isHostingSubscription
Correctly
SlapOSMasterCommunicator
.
__init__
=
original_SlapOSMasterCommunicator__init__
time
.
sleep
=
original_sleep
erp5/util/testnode/ScalabilityTestRunner.py
View file @
e028637b
...
...
@@ -46,6 +46,7 @@ from erp5.util import taskdistribution
# for dummy slapos answer
import
signal
MAX_INSTANCE_TIME
=
60
*
60
# 1 hour
class
ScalabilityTestRunner
():
def
__init__
(
self
,
testnode
):
...
...
@@ -181,7 +182,7 @@ late a SlapOS (positive) answer." %(str(os.getpid()),str(os.getpid()),))
Return true if the specified instance is ready.
This method should communicates with SlapOS Master.
"""
return
self
.
slapos_communicator
.
is
Instance
Correctly
(
instance_title
,
state
)
return
self
.
slapos_communicator
.
is
HostingSubscription
Correctly
(
instance_title
,
state
)
def
remainSoftwareToInstall
(
self
):
"""
...
...
@@ -209,9 +210,13 @@ late a SlapOS (positive) answer." %(str(os.getpid()),str(os.getpid()),))
# Used to simulate slapOS answer
def
_waitInstance
(
self
,
instance_title
,
state
):
self
.
log
(
"Wait for instance state: %s"
%
state
)
while
(
not
self
.
isInstanceReady
(
instance_title
,
state
)):
#TODO: add a time limit
max_time
=
MAX_INSTANCE_TIME
start_time
=
0
while
(
not
self
.
isInstanceReady
(
instance_title
,
state
)
and
(
max_time
>
(
time
.
time
()
-
start_time
))):
time
.
sleep
(
15
)
pass
def
prepareSlapOSForTestSuite
(
self
,
node_test_suite
):
"""
...
...
erp5/util/testnode/SlapOSMasterCommunicator.py
View file @
e028637b
...
...
@@ -116,7 +116,8 @@ class SlapOSMasterCommunicator(object):
if
excepted_news_text
!=
news
[
'news'
][
0
][
'text'
]:
return
False
return
len
(
related_instance_link_list
)
>
0
# check if requested state = status
def
isInstanceCorrect
(
self
,
instance_link
):
"""
Return True if instance status and instance news text ~looks corresponding.
...
...
@@ -128,7 +129,20 @@ class SlapOSMasterCommunicator(object):
text
=
news
[
'news'
][
0
][
'text'
]
requested_status
=
instance
[
'status'
]
return
(
'Instance'
in
text
)
and
(
'correctly'
in
text
)
and
(
requested_status
in
text
)
# check if requested state = status
def
isHostingSubscriptionCorrect
(
self
,
hosting_subscription_title
):
"""
Return True if all instance news related to hosting_subscription_title
correspond to the requested status.
"""
instance_link_list
=
self
.
_getRelatedInstanceLink
(
hosting_subscription_title
)
for
instance_link
in
instance_link_list
:
if
not
communicator
.
isInstanceCorrect
(
instance_link
):
return
False
return
len
(
instance_link_list
)
>
0
# check if provided 'status' = status
def
isInstanceCorrectly
(
self
,
instance_link
,
status
):
"""
Return True if instance status and instance news text ~looks corresponding.
...
...
@@ -137,14 +151,16 @@ class SlapOSMasterCommunicator(object):
text
=
self
.
getNewsFromInstanceLink
(
instance_link
)[
'news'
][
0
][
'text'
]
return
(
'Instance'
in
text
)
and
(
'correctly'
in
text
)
and
(
status
in
text
)
def
isHostingSubscriptionCorrect
(
self
,
hosting_subscription_title
):
# check if provided 'status' = status
def
isHostingSubscriptionCorrectly
(
self
,
hosting_subscription_title
,
status
):
"""
Return True if all instance
news related to hosting_subscription_title
correspond to the requested status
.
Return True if all instance
status and instance news text ~looks corresponding.
( use the matching of 'correctly' and 'Instance' and status )
.
"""
instance_link_list
=
self
.
_getRelatedInstanceLink
(
'TestScalability_21423104630420'
)
instance_link_list
=
self
.
_getRelatedInstanceLink
(
hosting_subscription_title
)
for
instance_link
in
instance_link_list
:
if
not
communicator
.
isInstanceCorrect
(
instance_link
):
if
not
communicator
.
isInstanceCorrect
ly
(
instance_link
,
status
):
return
False
return
len
(
instance_link_list
)
>
0
\ 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