Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5-Boxiang
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
Hamza
erp5-Boxiang
Commits
b51728f4
Commit
b51728f4
authored
May 22, 2017
by
Nicolas Wavrant
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5-upgrader: new test for sequentiality of activities run by upgrader
parent
c6794993
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
82 additions
and
1 deletion
+82
-1
bt5/erp5_upgrader/TestTemplateItem/portal_components/test.erp5.testUpgrader.py
...tTemplateItem/portal_components/test.erp5.testUpgrader.py
+82
-1
No files found.
bt5/erp5_upgrader/TestTemplateItem/portal_components/test.erp5.testUpgrader.py
View file @
b51728f4
...
@@ -135,12 +135,19 @@ class TestUpgrader(ERP5TypeTestCase):
...
@@ -135,12 +135,19 @@ class TestUpgrader(ERP5TypeTestCase):
id=script_constraint_id)
id=script_constraint_id)
script_constraint.edit(script_id=self.script_id, constraint_type="
pre_upgrade
")
script_constraint.edit(script_id=self.script_id, constraint_type="
pre_upgrade
")
def
stepCreatePersonPropertySheet(self, sequence=None
):
def
_createPersonEmptyPropertySheet(self
):
portal = self.portal
portal = self.portal
property_sheet = getattr(portal.portal_property_sheets, self.property_sheet_id, None)
property_sheet = getattr(portal.portal_property_sheets, self.property_sheet_id, None)
if property_sheet is None:
if property_sheet is None:
property_sheet = portal.portal_property_sheets.newContent(
property_sheet = portal.portal_property_sheets.newContent(
portal_type="
Property
Sheet
", id=self.property_sheet_id)
portal_type="
Property
Sheet
", id=self.property_sheet_id)
return property_sheet
def stepCreatePersonEmptyPropertySheet(self, sequence=None):
self._createPersonEmptyPropertySheet()
def stepCreatePersonPropertySheet(self, sequence=None):
property_sheet = self._createPersonEmptyPropertySheet()
script_constraint_id = "
person_old_reference_constraint
"
script_constraint_id = "
person_old_reference_constraint
"
script_constraint = getattr(property_sheet, script_constraint_id, None)
script_constraint = getattr(property_sheet, script_constraint_id, None)
if script_constraint is None:
if script_constraint is None:
...
@@ -767,4 +774,78 @@ class TestUpgrader(ERP5TypeTestCase):
...
@@ -767,4 +774,78 @@ class TestUpgrader(ERP5TypeTestCase):
stepCheckPostUpgradeRequired
stepCheckPostUpgradeRequired
"""
"""
sequence_list.addSequenceString(sequence_string)
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
def _setPersonTitleConstraintForUpgraderStep(self, step):
portal = self.portal
skin_folder = portal.portal_skins.custom
script_id = "
Person_
%
s_setTitleConstraint
" % step
custom_script = getattr(skin_folder, script_id, None)
if custom_script is None:
skin_folder.manage_addProduct['PythonScripts'].manage_addPythonScript(script_id)
custom_script = getattr(skin_folder, script_id)
custom_script.ZPythonScript_edit('fixit=False, **kw',
"
{
step_string
}
=
'M. {step_string}'
\
n
"
"
if
context
.
getTitle
()
!=
{
step_string
}:
\
n
"
"
if
fixit
:
\
n
"
"
context
.
setTitle
({
step_string
})
\
n
"
"
else
:
\
n
"
"
return
[
\
"Person's title is wrong
\
"
,]
\
n
"
"return []"
.
format
(
step_string
=
step
)
)
property_sheet_id
=
self
.
property_sheet_id
property_sheet
=
getattr
(
portal
.
portal_property_sheets
,
property_sheet_id
,
None
)
script_constraint_id
=
"person_title_%s_constraint"
%
step
script_constraint
=
getattr
(
property_sheet
,
script_constraint_id
,
None
)
if
script_constraint
is
None
:
script_constraint
=
property_sheet
.
newContent
(
portal_type
=
"Script Constraint"
,
id
=
script_constraint_id
)
script_constraint
.
edit
(
script_id
=
script_id
,
constraint_type
=
"%s"
%
step
)
def
stepSetPersonTitlePreUpgradeConstraint
(
self
,
sequence
=
None
):
self
.
_setPersonTitleConstraintForUpgraderStep
(
'pre_upgrade'
)
def
stepSetPersonTitleUpgradeConstraint
(
self
,
sequence
=
None
):
self
.
_setPersonTitleConstraintForUpgraderStep
(
'upgrader'
)
def
stepSetPersonTitlePostUpgradeConstraint
(
self
,
sequence
=
None
):
self
.
_setPersonTitleConstraintForUpgraderStep
(
'post_upgrade'
)
def
stepCheckPersonTitleHasBeenSetByPersonTitlePostUpgradeConstraint
(
self
,
sequence
=
None
):
person
=
sequence
[
'person'
]
title
=
person
.
getTitle
()
self
.
assertEqual
(
title
,
'M. post_upgrade'
)
def
stepCheckPersonTitleHistory
(
self
,
sequence
=
None
):
person
=
sequence
[
'person'
]
self
.
assertEqual
(
[
x
.
changes
for
x
in
self
.
portal
.
person_module
[
'1'
].
Base_getZODBHistoryList
()[
-
3
:]],
[(
'title:M. pre_upgrade'
,),
(
'title:M. upgrader'
,),
(
'title:M. post_upgrade'
,)])
def
test_upgrade_activities_are_run_sequentially
(
self
):
"""
Check that activities spawned by the upgrader are always run in the same
order : pre-upgrade, upgrade, post-upgrade
"""
sequence_list
=
SequenceList
()
sequence_string
=
"""
stepCreatePerson
stepValidatePerson
stepCreatePersonEmptyPropertySheet
stepSetConstraintInPersonPortalType
stepSetPersonTitlePreUpgradeConstraint
stepSetPersonTitleUpgradeConstraint
stepSetPersonTitlePostUpgradeConstraint
stepTic
stepRunFullUpgrader
stepTic
stepCheckPersonTitleHasBeenSetByPersonTitlePostUpgradeConstraint
stepCheckPersonTitleHistory
"""
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
sequence_list
.
play
(
self
)
\ 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