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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
preetwinder
erp5
Commits
a2834304
Commit
a2834304
authored
Jan 22, 2015
by
wenjie.zheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_core: delete no-existe testWorkflow5.
parent
ebd4b75a
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
0 additions
and
330 deletions
+0
-330
product/ERP5/bootstrap/erp5_core/TestTemplateItem/portal_components/test.erp5.testWorkflow5.py
...TemplateItem/portal_components/test.erp5.testWorkflow5.py
+0
-228
product/ERP5/bootstrap/erp5_core/TestTemplateItem/portal_components/test.erp5.testWorkflow5.xml
...emplateItem/portal_components/test.erp5.testWorkflow5.xml
+0
-102
No files found.
product/ERP5/bootstrap/erp5_core/TestTemplateItem/portal_components/test.erp5.testWorkflow5.py
deleted
100644 → 0
View file @
ebd4b75a
##############################################################################
#
# Copyright (c) 2014 Nexedi SA and Contributors. All Rights Reserved.
# Wenjie ZHENG <wenjie.zheng@tiolive.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import
unittest
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
from
Acquisition
import
aq_get
class
TestERP5Workflow
(
ERP5TypeTestCase
):
"""
Tests ERP5 Workflow.
"""
def
getBusinessTemplateList
(
self
):
"""Returns list of BT to be installed."""
return
(
'erp5_workflow'
,)
def
afterSetUp
(
self
):
self
.
portal
=
self
.
getPortal
()
self
.
workflow_module
=
self
.
portal
.
workflow_module
self
.
login
()
# as Manager
def
test_SimpleWorkflow
(
self
):
"""Default test."""
# Create a workflow
workflow
=
self
.
workflow_module
.
newContent
(
portal_type
=
'Workflow'
)
s1
=
workflow
.
newContent
(
portal_type
=
'State'
,
title
=
'State 1'
)
s2
=
workflow
.
newContent
(
portal_type
=
'State'
,
title
=
'State 2'
)
t1
=
workflow
.
newContent
(
portal_type
=
'Transition'
,
title
=
'Transition 1'
)
s1
.
setDestinationValue
(
t1
)
t1
.
setDestinationValue
(
s2
)
# set initial state
workflow
.
setSourceValue
(
s1
)
# set state variable
workflow
.
setStateBaseCategory
(
'validation_state'
)
# Create a document connected to the workflow
doc
=
self
.
portal
.
newContent
(
portal_type
=
'Folder'
,
id
=
'test_doc'
)
workflow
.
initializeDocument
(
doc
)
self
.
assertEqual
(
s1
.
getRelativeUrl
(),
doc
.
_getDefaultAcquiredCategoryMembership
(
'validation_state'
))
def
test_Erp5Workflow
(
self
):
"""Tests the connection between ERP5Workflow and Objects."""
# Create base category as the intermidiate
self
.
portal
.
portal_categories
.
newContent
(
'category_state'
)
# Create a workflow
new_workflow
=
self
.
workflow_module
.
newContent
(
portal_type
=
'Workflow'
,
id
=
'new_workflow'
)
s1
=
new_workflow
.
newContent
(
portal_type
=
'State'
,
title
=
'State 1'
)
s2
=
new_workflow
.
newContent
(
portal_type
=
'State'
,
title
=
'State 2'
)
t1
=
new_workflow
.
newContent
(
portal_type
=
'Transition'
,
title
=
'Transition 1'
)
s1
.
setDestinationValue
(
t1
)
t1
.
setDestinationValue
(
s2
)
# set initial state
new_workflow
.
setSourceValue
(
s1
)
# state variable
new_workflow
.
setStateBaseCategory
(
'category_state'
)
# create a base type and a portal type based on this base type
type_object
=
self
.
portal
.
portal_types
.
newContent
(
portal_type
=
'Base Type'
,
id
=
'Object Type'
,
type_class
=
'XMLObject'
,
type_base_category_list
=
(
'category_state'
)
)
type_object
.
setWorkflow5Value
(
new_workflow
)
#use variable in ERP5Type.py, to avoid using no-exist accessor
type_object
.
workflow_list
=
(
'new_workflow'
,)
self
.
assertEqual
(
type_object
.
getBaseCategoryList
(),
[
'workflow5'
])
self
.
assertEqual
(
type_object
.
getWorkflow5
(),
'workflow_module/new_workflow'
)
self
.
assertEqual
(
len
(
type_object
.
getWorkflow5ValueList
()),
1
)
# create a module
self
.
portal
.
portal_types
.
newContent
(
'Module Type'
,
'Base Type'
,
type_class
=
'Folder'
,
type_filter_content_type
=
1
,
type_allowed_content_type_list
=
(
'Object Type'
,))
self
.
portal
.
newContent
(
portal_type
=
'Module Type'
,
id
=
'new_module'
)
# create an object based on new-created portal type in the module
new_object
=
self
.
portal
.
new_module
.
newContent
(
portal_type
=
'Object Type'
,
id
=
'new_object'
)
self
.
assertTrue
(
new_object
is
not
None
)
self
.
assertEqual
(
new_object
.
getPortalType
(),
"Object Type"
)
self
.
assertEqual
(
new_object
.
getPortalType
(),
'Object Type'
)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 1'
)
def
test_Erp5Transition
(
self
):
"""Tests ERP5Workflow transition"""
# Create base category as the intermidiate
self
.
portal
.
portal_categories
.
newContent
(
'category_state'
)
self
.
portal
.
portal_categories
.
newContent
(
'category_transition'
)
# Create a workflow
new_workflow
=
self
.
workflow_module
.
newContent
(
portal_type
=
'Workflow'
,
id
=
'new_workflow'
)
s1
=
new_workflow
.
newContent
(
portal_type
=
'State'
,
title
=
'State 1'
)
s2
=
new_workflow
.
newContent
(
portal_type
=
'State'
,
title
=
'State 2'
)
t1
=
new_workflow
.
newContent
(
portal_type
=
'Transition'
,
title
=
'Transition 1'
,
id
=
'transition1'
)
t2
=
new_workflow
.
newContent
(
portal_type
=
'Transition'
,
title
=
'Transition 2'
,
id
=
'transition2'
)
s1
.
setDestinationValue
(
t1
)
s2
.
setDestinationValue
(
t2
)
t1
.
setDestinationValue
(
s2
)
t2
.
setDestinationValue
(
s1
)
# set initial state
new_workflow
.
setSourceValue
(
s1
)
# state variable
new_workflow
.
setStateBaseCategory
(
'category_state'
,
'category_transition'
)
# create a base type and a portal type based on this base type
type_object
=
self
.
portal
.
portal_types
.
newContent
(
portal_type
=
'Base Type'
,
id
=
'Object Type'
,
type_class
=
'XMLObject'
,
type_base_category_list
=
([
'category_state'
,
'category_transition'
])
)
type_object
.
setWorkflow5Value
(
new_workflow
)
type_object
.
workflow_list
=
(
'new_workflow'
,)
#type_object.setProperty('Transition_2', new_workflow)
self
.
assertEqual
(
type_object
.
getBaseCategoryList
(),
[
'workflow5'
])
self
.
assertEqual
(
type_object
.
getWorkflow5
(),
'workflow_module/new_workflow'
)
self
.
assertEqual
(
len
(
type_object
.
getWorkflow5ValueList
()),
1
)
# create a module
self
.
portal
.
portal_types
.
newContent
(
'Module Type'
,
'Base Type'
,
type_class
=
'Folder'
,
type_filter_content_type
=
1
,
type_allowed_content_type_list
=
(
'Object Type'
,))
self
.
portal
.
newContent
(
portal_type
=
'Module Type'
,
id
=
'new_module'
)
# create an object based on new-created portal type in the module
new_object
=
self
.
portal
.
new_module
.
newContent
(
portal_type
=
'Object Type'
,
id
=
'new_object'
)
new_object
.
setCategoryTransitionValue
(
t2
)
self
.
assertTrue
(
new_object
is
not
None
)
self
.
assertEqual
(
new_object
.
getPortalType
(),
'Object Type'
)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 1'
)
# Pass transition
# Method 1: transition level with base_category
t1
.
execute
(
new_object
)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 2'
)
t2
.
execute
(
new_object
)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 1'
)
# Method 2: state level with base_category
s1
.
executeTransition
(
t1
,
new_object
)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 2'
)
s2
.
executeTransition
(
t2
,
new_object
)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 1'
)
# Method 3: object level with base_category
new_object
.
getCategoryStateValue
().
executeTransition
(
new_workflow
.
transition1
,
new_object
)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 2'
)
new_object
.
getCategoryStateValue
().
executeTransition
(
new_workflow
.
transition2
,
new_object
)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 1'
)
# Method 4: object level with workflow_list
new_object
.
getDefaultModule
(
portal_type
=
"Workflow"
).
_getOb
(
'new_workflow'
).
transition1
.
execute
(
new_object
)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 2'
)
#new_object.getDefaultModule(portal_type="Workflow")._getOb('new_workflow').transition2.execute(new_object)
aq_get
(
new_object
,
'workflow_module'
,
1
).
_getOb
(
type_object
.
workflow_list
[
0
]).
transition2
.
execute
(
new_object
)
# getToolByName(new_object, 'new_workflow').transition2.execute(new_object) # marche pas
#new_object.Transition1.execute(new_object)
self
.
assertEqual
(
new_object
.
getCategoryStateTitle
(),
'State 1'
)
#new_object.transition1()
#self.assertEqual(new_object.getCategoryStateTitle(), 'State 2')
#new_object.transition2a1()
def
test_suite
():
suite
=
unittest
.
TestSuite
()
suite
.
addTest
(
unittest
.
makeSuite
(
TestERP5Workflow
))
return
suite
\ No newline at end of file
product/ERP5/bootstrap/erp5_core/TestTemplateItem/portal_components/test.erp5.testWorkflow5.xml
deleted
100644 → 0
View file @
ebd4b75a
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testWorkflow5
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testWorkflow5
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.patches.WorkflowTool"
/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
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