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
Carlos Ramos Carreño
slapos.core
Commits
422d6ebc
Commit
422d6ebc
authored
Dec 05, 2012
by
Romain Courteaud
🐸
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Deprecated tests.
parent
6c747121
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1 addition
and
1212 deletions
+1
-1212
master/bt5/vifib_erp5/TestTemplateItem/testVifibCRMSecurity.py
...r/bt5/vifib_erp5/TestTemplateItem/testVifibCRMSecurity.py
+0
-283
master/bt5/vifib_erp5/TestTemplateItem/testVifibComputerModelSecurity.py
...b_erp5/TestTemplateItem/testVifibComputerModelSecurity.py
+0
-134
master/bt5/vifib_erp5/TestTemplateItem/testVifibComputerNetworkSecurity.py
...erp5/TestTemplateItem/testVifibComputerNetworkSecurity.py
+0
-136
master/bt5/vifib_erp5/TestTemplateItem/testVifibComputerWithComputerModel.py
...p5/TestTemplateItem/testVifibComputerWithComputerModel.py
+0
-11
master/bt5/vifib_erp5/TestTemplateItem/testVifibConstraint.py
...er/bt5/vifib_erp5/TestTemplateItem/testVifibConstraint.py
+0
-135
master/bt5/vifib_erp5/TestTemplateItem/testVifibModuleSecurity.py
...t5/vifib_erp5/TestTemplateItem/testVifibModuleSecurity.py
+0
-94
master/bt5/vifib_erp5/TestTemplateItem/testVifibPayZen.py
master/bt5/vifib_erp5/TestTemplateItem/testVifibPayZen.py
+0
-217
master/bt5/vifib_erp5/TestTemplateItem/testVifibPersonSecurity.py
...t5/vifib_erp5/TestTemplateItem/testVifibPersonSecurity.py
+0
-105
master/bt5/vifib_erp5/TestTemplateItem/testVifibUserDeveloper.py
...bt5/vifib_erp5/TestTemplateItem/testVifibUserDeveloper.py
+0
-87
master/bt5/vifib_erp5/bt/revision
master/bt5/vifib_erp5/bt/revision
+1
-1
master/bt5/vifib_erp5/bt/template_test_id_list
master/bt5/vifib_erp5/bt/template_test_id_list
+0
-9
No files found.
master/bt5/vifib_erp5/TestTemplateItem/testVifibCRMSecurity.py
deleted
100644 → 0
View file @
6c747121
##############################################################################
#
# Copyright (c) 2011 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility 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
# guarantees 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from
VifibMixin
import
testVifibMixin
from
AccessControl
import
Unauthorized
from
Products.ERP5Type.tests.SecurityTestCase
import
SecurityTestCase
sale_login_id
=
'test_sale_agent'
member_login_id
=
'test_vifib_customer'
class
TestVifibCRMSecurity
(
testVifibMixin
,
SecurityTestCase
):
def
getTitle
(
self
):
return
"Vifib CRM Security"
def
test_CampaignSecurity
(
self
):
"""
Sale division should be able to manage campaign.
Anonymous/member has no permission to any campaign.
"""
# Sale division
self
.
login
(
user_name
=
sale_login_id
)
# Try to acceed the campaign module through restrictedTraverse
# This will test the security of the module
campaign_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Campaign'
)
campaign_module
=
self
.
portal
.
restrictedTraverse
(
campaign_module_id
)
# Add campaign
campaign
=
campaign_module
.
newContent
(
portal_type
=
'Campaign'
)
# Edit the campaign
campaign
.
edit
(
title
=
'Test Vifib Campaign'
,
)
campaign_relative_url
=
campaign
.
getRelativeUrl
()
self
.
stepTic
()
self
.
assertEquals
(
1
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
campaign_relative_url
)))
# XXX TODO: test real CRM use case related to the security
self
.
assertUserHaveRoleOnDocument
(
sale_login_id
,
"Assignor"
,
campaign
)
self
.
logout
()
# Member
self
.
login
(
user_name
=
member_login_id
)
self
.
assertRaises
(
Unauthorized
,
self
.
portal
.
restrictedTraverse
,
[
campaign_module_id
]
)
self
.
assertEquals
(
0
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
campaign_relative_url
)))
self
.
logout
()
# Anonymous
self
.
assertRaises
(
Unauthorized
,
self
.
portal
.
restrictedTraverse
,
[
campaign_module_id
]
)
self
.
assertEquals
(
0
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
campaign_relative_url
)))
def
test_SupportRequestSecurity
(
self
):
"""
Sale division should be able to manage support request.
Anonymous/member has no permission to any support request.
"""
# Sale division
self
.
login
(
user_name
=
sale_login_id
)
# Try to acceed the support_request module through restrictedTraverse
# This will test the security of the module
support_request_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Support Request'
)
support_request_module
=
self
.
portal
.
restrictedTraverse
(
support_request_module_id
)
# Add support_request
support_request
=
support_request_module
.
newContent
(
portal_type
=
'Support Request'
)
# Edit the support_request
support_request
.
edit
(
title
=
'Test Vifib Support Request'
,
)
support_request_relative_url
=
support_request
.
getRelativeUrl
()
self
.
stepTic
()
self
.
assertEquals
(
1
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
support_request_relative_url
)))
# XXX TODO: test real CRM use case related to the security
self
.
assertUserHaveRoleOnDocument
(
sale_login_id
,
"Assignor"
,
support_request
)
self
.
logout
()
# Member
self
.
login
(
user_name
=
member_login_id
)
self
.
assertRaises
(
Unauthorized
,
self
.
portal
.
restrictedTraverse
,
[
support_request_module_id
]
)
self
.
assertEquals
(
0
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
support_request_relative_url
)))
self
.
logout
()
# Anonymous
self
.
assertRaises
(
Unauthorized
,
self
.
portal
.
restrictedTraverse
,
[
support_request_module_id
]
)
self
.
assertEquals
(
0
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
support_request_relative_url
)))
def
test_NotificationMessageSecurity
(
self
):
"""
Sale division should be able to manage notification message.
Anonymous/member has no permission to any notification message.
"""
# Sale division
self
.
login
(
user_name
=
sale_login_id
)
# Try to acceed the notification_message module through restrictedTraverse
# This will test the security of the module
notification_message_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Notification Message'
)
notification_message_module
=
self
.
portal
.
restrictedTraverse
(
notification_message_module_id
)
# Add notification_message
notification_message
=
notification_message_module
.
newContent
(
portal_type
=
'Notification Message'
)
# Edit the notification_message
notification_message
.
edit
(
title
=
'Test Vifib Notification Message'
,
)
notification_message_relative_url
=
notification_message
.
getRelativeUrl
()
self
.
stepTic
()
self
.
assertEquals
(
1
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
notification_message_relative_url
)))
# XXX TODO: test real CRM use case related to the security
self
.
assertUserHaveRoleOnDocument
(
sale_login_id
,
"Assignor"
,
notification_message
)
self
.
logout
()
# Member
self
.
login
(
user_name
=
member_login_id
)
self
.
assertRaises
(
Unauthorized
,
self
.
portal
.
restrictedTraverse
,
[
notification_message_module_id
]
)
self
.
assertEquals
(
0
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
notification_message_relative_url
)))
self
.
logout
()
# Anonymous
self
.
assertRaises
(
Unauthorized
,
self
.
portal
.
restrictedTraverse
,
[
notification_message_module_id
]
)
self
.
assertEquals
(
0
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
notification_message_relative_url
)))
def
test_EventSecurity
(
self
):
"""
Sale division should be able to manage event.
Anonymous/member has no permission to any event.
"""
# Sale division
self
.
login
(
user_name
=
sale_login_id
)
# Try to acceed the event module through restrictedTraverse
# This will test the security of the module
event_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Fax Message'
)
event_module
=
self
.
portal
.
restrictedTraverse
(
event_module_id
)
self
.
logout
()
for
portal_type
in
self
.
portal
.
getPortalEventTypeList
():
# Sale division
self
.
login
(
user_name
=
sale_login_id
)
# Add event
event
=
event_module
.
newContent
(
portal_type
=
portal_type
)
# Edit the event
event
.
edit
(
title
=
'Test Vifib %s'
%
portal_type
,
)
event_relative_url
=
event
.
getRelativeUrl
()
self
.
stepTic
()
self
.
assertEquals
(
1
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
event_relative_url
)))
# XXX TODO: test real CRM use case related to the security
self
.
assertUserHaveRoleOnDocument
(
sale_login_id
,
"Assignor"
,
event
)
self
.
logout
()
# Member
self
.
login
(
user_name
=
member_login_id
)
self
.
assertRaises
(
Unauthorized
,
self
.
portal
.
restrictedTraverse
,
[
event_module_id
]
)
self
.
assertEquals
(
0
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
event_relative_url
)))
self
.
logout
()
# Anonymous
self
.
assertRaises
(
Unauthorized
,
self
.
portal
.
restrictedTraverse
,
[
event_module_id
]
)
self
.
assertEquals
(
0
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
event_relative_url
)))
def
test_PersonSecurity
(
self
):
"""
Sale division should be able to manage person.
"""
# Sale division
self
.
login
(
user_name
=
sale_login_id
)
# Try to acceed the person module through restrictedTraverse
# This will test the security of the module
person_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Person'
)
person_module
=
self
.
portal
.
restrictedTraverse
(
person_module_id
)
# Add person
person
=
person_module
.
newContent
(
portal_type
=
"Person"
)
# Edit the person
person
.
edit
(
title
=
'Test Vifib Person'
)
person_relative_url
=
person
.
getRelativeUrl
()
self
.
stepTic
()
self
.
assertEquals
(
1
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
person_relative_url
)))
# XXX TODO: test real CRM use case related to the security
self
.
assertUserHaveRoleOnDocument
(
sale_login_id
,
"Assignor"
,
person
)
self
.
logout
()
def
test_OrganisationSecurity
(
self
):
"""
Sale division should be able to manage organisation.
"""
# Sale division
self
.
login
(
user_name
=
sale_login_id
)
# Try to acceed the organisation module through restrictedTraverse
# This will test the security of the module
organisation_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Organisation'
)
organisation_module
=
self
.
portal
.
restrictedTraverse
(
organisation_module_id
)
# Add organisation
organisation
=
organisation_module
.
newContent
(
portal_type
=
"Organisation"
)
# Edit the organisation
organisation
.
edit
(
title
=
'Test Vifib Organisation'
)
organisation_relative_url
=
organisation
.
getRelativeUrl
()
self
.
stepTic
()
self
.
assertEquals
(
1
,
len
(
self
.
portal
.
portal_catalog
(
relative_url
=
organisation_relative_url
)))
# XXX TODO: test real CRM use case related to the security
self
.
assertUserHaveRoleOnDocument
(
sale_login_id
,
"Assignor"
,
organisation
)
self
.
logout
()
master/bt5/vifib_erp5/TestTemplateItem/testVifibComputerModelSecurity.py
deleted
100644 → 0
View file @
6c747121
# Copyright (c) 2012 Nexedi SA and Contributors. All Rights Reserved.
import
unittest
from
Products.Vifib.tests.testVifibSlapWebService
import
\
TestVifibSlapWebServiceMixin
READ
=
'Access contents information'
VIEW
=
'View'
ADD
=
'Add portal content'
WRITE
=
'Modify portal content'
OTHER_AUDITOR
=
[
'Access Transient Objects'
,
'Access session data'
,
'Copy or Move'
,
'List folder contents'
,
'View History'
]
OTHER_AUTHOR
=
[
'Add portal folders'
,
]
class
TestVifibComputerModelSecurity
(
TestVifibSlapWebServiceMixin
):
def
generateNewId
(
self
):
return
self
.
getPortalObject
().
portal_ids
.
generateNewId
(
id_group
=
(
'slapos_core_test'
))
def
getTitle
(
self
):
return
"Test Vifib Computer Model Security"
def
createMemberUser
(
self
):
portal
=
self
.
getPortalObject
()
new_id
=
self
.
generateNewId
()
# Clone person document
person_user
=
portal
.
person_module
.
template_member
.
\
Base_createCloneDocument
(
batch_mode
=
1
)
person_user
.
edit
(
title
=
"live_test_%s"
%
new_id
,
reference
=
"live_test_%s"
%
new_id
,
default_email_text
=
"live_test_%s@example.org"
%
new_id
,
)
person_user
.
validate
()
for
assignment
in
person_user
.
contentValues
(
portal_type
=
"Assignment"
):
assignment
.
open
()
return
person_user
def
afterSetUp
(
self
):
pass
def
beforeTearDown
(
self
):
pass
def
_getLocalRoles
(
self
,
context
):
return
[
x
[
0
]
for
x
in
context
.
get_local_roles
()]
def
_permissionsOfRole
(
self
,
context
,
role
):
return
[
x
[
'name'
]
for
x
in
context
.
permissionsOfRole
(
role
)
\
if
x
[
'selected'
]
==
'SELECTED'
]
def
assertPermissionsOfRole
(
self
,
context
,
role
,
permission_list
):
self
.
assertSameSet
(
permission_list
,
self
.
_permissionsOfRole
(
context
,
role
))
def
assertSecurityGroup
(
self
,
context
,
security_group_list
,
acquired
):
self
.
assertEquals
(
acquired
,
context
.
_getAcquireLocalRoles
())
self
.
assertSameSet
(
security_group_list
,
self
.
_getLocalRoles
(
context
)
)
def
assertRoles
(
self
,
context
,
security_group
,
role_list
):
self
.
assertSameSet
(
role_list
,
context
.
get_local_roles_for_userid
(
security_group
)
)
def
test_ComputerModelModuleLocalRoles
(
self
):
module
=
self
.
portal
.
computer_model_module
self
.
assertSecurityGroup
(
module
,
[
'R-MEMBER'
,
'zope'
],
False
)
self
.
assertRoles
(
module
,
'R-MEMBER'
,
[
'Author'
,
'Auditor'
])
self
.
assertRoles
(
module
,
'zope'
,
[
'Owner'
])
def
test_ComputerModelModulePermissions
(
self
):
module
=
self
.
portal
.
computer_model_module
self
.
assertPermissionsOfRole
(
module
,
'Owner'
,
[])
self
.
assertPermissionsOfRole
(
module
,
'Auditor'
,
[
READ
,
VIEW
]
+
OTHER_AUDITOR
)
self
.
assertPermissionsOfRole
(
module
,
'Author'
,
[
READ
,
ADD
]
+
OTHER_AUDITOR
+
OTHER_AUTHOR
)
def
test_ComputerModelLocalRoles
(
self
):
module
=
self
.
portal
.
computer_model_module
Model
=
module
.
newContent
(
portal_type
=
"Computer Model"
)
self
.
assertSecurityGroup
(
Model
,
[
'ERP5TypeTestCase'
,
'G-COMPANY'
],
False
)
self
.
assertRoles
(
Model
,
'ERP5TypeTestCase'
,
[
'Owner'
])
self
.
assertRoles
(
Model
,
'G-COMPANY'
,
[
'Assignor'
])
# Setting source administration give person the assignee role
person
=
self
.
createMemberUser
()
Model
.
edit
(
source_administration_value
=
person
)
self
.
assertSecurityGroup
(
Model
,
[
'ERP5TypeTestCase'
,
'G-COMPANY'
,
person
.
getReference
()],
False
)
self
.
assertRoles
(
Model
,
person
.
getReference
(),
[
'Assignee'
])
def
test_ComputerModelPermission
(
self
):
module
=
self
.
portal
.
computer_model_module
Model
=
module
.
newContent
(
portal_type
=
"Computer Model"
)
# Check draft state
self
.
assertEquals
(
'draft'
,
Model
.
getValidationState
())
self
.
assertPermissionsOfRole
(
Model
,
'Owner'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
self
.
assertPermissionsOfRole
(
Model
,
'Assignor'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
self
.
assertPermissionsOfRole
(
Model
,
'Assignee'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
# Check validated state
Model
.
validate
()
self
.
assertEquals
(
'validated'
,
Model
.
getValidationState
())
self
.
assertPermissionsOfRole
(
Model
,
'Owner'
,
[])
self
.
assertPermissionsOfRole
(
Model
,
'Assignor'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
self
.
assertPermissionsOfRole
(
Model
,
'Assignee'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
def
test_suite
():
suite
=
unittest
.
TestSuite
()
suite
.
addTest
(
unittest
.
makeSuite
(
TestVifibComputerModelSecurity
))
return
suite
master/bt5/vifib_erp5/TestTemplateItem/testVifibComputerNetworkSecurity.py
deleted
100644 → 0
View file @
6c747121
# Copyright (c) 2012 Nexedi SA and Contributors. All Rights Reserved.
import
unittest
from
Products.Vifib.tests.testVifibSlapWebService
import
\
TestVifibSlapWebServiceMixin
READ
=
'Access contents information'
VIEW
=
'View'
ADD
=
'Add portal content'
WRITE
=
'Modify portal content'
OTHER_AUDITOR
=
[
'Access Transient Objects'
,
'Access session data'
,
'Copy or Move'
,
'List folder contents'
,
'View History'
]
OTHER_AUTHOR
=
[
'Add portal folders'
,
]
class
TestVifibComputerNetworkSecurity
(
TestVifibSlapWebServiceMixin
):
def
generateNewId
(
self
):
return
self
.
getPortalObject
().
portal_ids
.
generateNewId
(
id_group
=
(
'slapos_core_test'
))
def
getTitle
(
self
):
return
"Test Vifib Computer Network Security"
def
createMemberUser
(
self
):
portal
=
self
.
getPortalObject
()
new_id
=
self
.
generateNewId
()
# Clone person document
person_user
=
portal
.
person_module
.
template_member
.
\
Base_createCloneDocument
(
batch_mode
=
1
)
person_user
.
edit
(
title
=
"live_test_%s"
%
new_id
,
reference
=
"live_test_%s"
%
new_id
,
default_email_text
=
"live_test_%s@example.org"
%
new_id
,
)
person_user
.
validate
()
for
assignment
in
person_user
.
contentValues
(
portal_type
=
"Assignment"
):
assignment
.
open
()
return
person_user
def
afterSetUp
(
self
):
pass
def
beforeTearDown
(
self
):
pass
def
_getLocalRoles
(
self
,
context
):
return
[
x
[
0
]
for
x
in
context
.
get_local_roles
()]
def
_permissionsOfRole
(
self
,
context
,
role
):
return
[
x
[
'name'
]
for
x
in
context
.
permissionsOfRole
(
role
)
\
if
x
[
'selected'
]
==
'SELECTED'
]
def
assertPermissionsOfRole
(
self
,
context
,
role
,
permission_list
):
self
.
assertSameSet
(
permission_list
,
self
.
_permissionsOfRole
(
context
,
role
))
def
assertSecurityGroup
(
self
,
context
,
security_group_list
,
acquired
):
self
.
assertEquals
(
acquired
,
context
.
_getAcquireLocalRoles
())
self
.
assertSameSet
(
security_group_list
,
self
.
_getLocalRoles
(
context
)
)
def
assertRoles
(
self
,
context
,
security_group
,
role_list
):
self
.
assertSameSet
(
role_list
,
context
.
get_local_roles_for_userid
(
security_group
)
)
def
test_ComputerNetworkModuleLocalRoles
(
self
):
module
=
self
.
portal
.
computer_network_module
self
.
assertSecurityGroup
(
module
,
[
'R-MEMBER'
,
'R-SHADOW'
,
'zope'
],
False
)
self
.
assertRoles
(
module
,
'R-MEMBER'
,
[
'Author'
,
'Auditor'
])
self
.
assertRoles
(
module
,
'R-SHADOW'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'zope'
,
[
'Owner'
])
def
test_ComputerNetworkModulePermissions
(
self
):
module
=
self
.
portal
.
computer_network_module
self
.
assertPermissionsOfRole
(
module
,
'Owner'
,
[])
self
.
assertPermissionsOfRole
(
module
,
'Auditor'
,
[
READ
,
VIEW
]
+
OTHER_AUDITOR
)
self
.
assertPermissionsOfRole
(
module
,
'Author'
,
[
READ
,
ADD
]
+
OTHER_AUDITOR
+
OTHER_AUTHOR
)
def
test_ComputerNetworkLocalRoles
(
self
):
module
=
self
.
portal
.
computer_network_module
network
=
module
.
newContent
(
portal_type
=
"Computer Network"
)
self
.
assertSecurityGroup
(
network
,
[
'ERP5TypeTestCase'
,
'G-COMPANY'
,
'R-SHADOW'
],
False
)
self
.
assertRoles
(
network
,
'ERP5TypeTestCase'
,
[
'Owner'
])
self
.
assertRoles
(
network
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
network
,
'R-SHADOW'
,
[
'Auditor'
])
# Setting source administration give person the assignee role
person
=
self
.
createMemberUser
()
network
.
edit
(
source_administration_value
=
person
)
self
.
assertSecurityGroup
(
network
,
[
'ERP5TypeTestCase'
,
'G-COMPANY'
,
'R-SHADOW'
,
person
.
getReference
()],
False
)
self
.
assertRoles
(
network
,
person
.
getReference
(),
[
'Assignee'
])
def
test_ComputerNetworkPermission
(
self
):
module
=
self
.
portal
.
computer_network_module
network
=
module
.
newContent
(
portal_type
=
"Computer Network"
)
# Check draft state
self
.
assertEquals
(
'draft'
,
network
.
getValidationState
())
self
.
assertPermissionsOfRole
(
network
,
'Owner'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
self
.
assertPermissionsOfRole
(
network
,
'Assignor'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
self
.
assertPermissionsOfRole
(
network
,
'Assignee'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
# Check validated state
network
.
validate
()
self
.
assertEquals
(
'validated'
,
network
.
getValidationState
())
self
.
assertPermissionsOfRole
(
network
,
'Owner'
,
[])
self
.
assertPermissionsOfRole
(
network
,
'Assignor'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
self
.
assertPermissionsOfRole
(
network
,
'Assignee'
,
[
READ
,
VIEW
,
ADD
,
WRITE
])
def
test_suite
():
suite
=
unittest
.
TestSuite
()
suite
.
addTest
(
unittest
.
makeSuite
(
TestVifibComputerNetworkSecurity
))
return
suite
master/bt5/vifib_erp5/TestTemplateItem/testVifibComputerWithComputerModel.py
deleted
100644 → 0
View file @
6c747121
# Copyright (c) 2012 Nexedi SA and Contributors. All Rights Reserved.
import
unittest
from
testERP5ComputerWithComputerModel
import
TestERP5ComputerWithComputerModel
class
TestVifibComputerWithComputerModel
(
TestERP5ComputerWithComputerModel
):
pass
def
test_suite
():
suite
=
unittest
.
TestSuite
()
suite
.
addTest
(
unittest
.
makeSuite
(
TestVifibComputerWithComputerModel
))
return
suite
master/bt5/vifib_erp5/TestTemplateItem/testVifibConstraint.py
deleted
100644 → 0
View file @
6c747121
##############################################################################
#
# Copyright (c) 2002-2011 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility 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
# guarantees 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from
VifibMixin
import
testVifibMixin
import
random
def
rndstr
():
return
str
(
random
.
random
())
def
getMessageList
(
o
):
return
[
str
(
q
.
getMessage
())
for
q
in
o
.
checkConsistency
()]
class
TestVifibSoftwareProductConstraint
(
testVifibMixin
):
def
getTitle
(
self
):
return
"Vifib Software Product Constraint checks"
def
test_title_not_empty
(
self
):
software_product
=
self
.
portal
.
software_product_module
.
newContent
(
portal_type
=
'Software Product'
)
consistency_message
=
'Title should be defined'
self
.
assertTrue
(
consistency_message
in
getMessageList
(
software_product
))
software_product
.
edit
(
title
=
rndstr
())
self
.
assertFalse
(
consistency_message
in
getMessageList
(
software_product
))
def
test_title_unique
(
self
):
title
=
rndstr
()
title_2
=
rndstr
()
consistency_message
=
'Title already exists'
software_product
=
self
.
portal
.
software_product_module
.
newContent
(
portal_type
=
'Software Product'
,
title
=
title
)
software_product_2
=
self
.
portal
.
software_product_module
.
newContent
(
portal_type
=
'Software Product'
,
title
=
title
)
self
.
stepTic
()
self
.
assertTrue
(
consistency_message
in
getMessageList
(
software_product
))
self
.
assertTrue
(
consistency_message
in
getMessageList
(
software_product_2
))
software_product_2
.
setTitle
(
title_2
)
self
.
stepTic
()
self
.
assertFalse
(
consistency_message
in
getMessageList
(
software_product
))
self
.
assertFalse
(
consistency_message
in
getMessageList
(
software_product_2
))
class
TestVifibSoftwareReleaseConstraint
(
testVifibMixin
):
def
test_reference
(
self
):
consistency_message
=
'Reference must be defined'
software_release
=
self
.
portal
.
software_release_module
.
newContent
(
portal_type
=
'Software Release'
)
self
.
assertTrue
(
consistency_message
in
getMessageList
(
software_release
))
software_release
.
setReference
(
rndstr
())
self
.
assertFalse
(
consistency_message
in
getMessageList
(
software_release
))
def
test_language
(
self
):
consistency_message
=
'Language should be defined'
software_release
=
self
.
portal
.
software_release_module
.
newContent
(
portal_type
=
'Software Release'
)
self
.
assertTrue
(
consistency_message
in
getMessageList
(
software_release
))
software_release
.
setLanguage
(
rndstr
())
self
.
assertFalse
(
consistency_message
in
getMessageList
(
software_release
))
def
test_version
(
self
):
consistency_message_existence
=
'Version should be defined'
consistency_message_unicity
=
'Version already exists'
reference
=
rndstr
()
software_release
=
self
.
portal
.
software_release_module
.
newContent
(
portal_type
=
'Software Release'
,
reference
=
reference
)
self
.
assertTrue
(
consistency_message_existence
in
getMessageList
(
software_release
))
version
=
rndstr
()
software_release
.
setVersion
(
version
)
self
.
assertFalse
(
consistency_message_existence
in
getMessageList
(
software_release
))
software_release_2
=
self
.
portal
.
software_release_module
.
newContent
(
portal_type
=
'Software Release'
,
version
=
version
,
reference
=
reference
)
software_release
.
publish
()
software_release_2
.
publish
()
self
.
stepTic
()
self
.
assertTrue
(
consistency_message_unicity
in
getMessageList
(
software_release
))
self
.
assertTrue
(
consistency_message_unicity
in
getMessageList
(
software_release_2
))
software_release_2
.
setVersion
(
rndstr
())
self
.
stepTic
()
self
.
assertFalse
(
consistency_message_unicity
in
getMessageList
(
software_release
))
self
.
assertFalse
(
consistency_message_unicity
in
getMessageList
(
software_release_2
))
master/bt5/vifib_erp5/TestTemplateItem/testVifibModuleSecurity.py
deleted
100644 → 0
View file @
6c747121
##############################################################################
#
# Copyright (c) 2002-2010 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility 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
# guarantees 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from
VifibMixin
import
testVifibMixin
from
zExceptions
import
Unauthorized
from
Products.ERP5Type.tests.backportUnittest
import
skip
class
TestVifibModuleSecurity
(
testVifibMixin
):
"""
Test Vifib Person security
"""
used_module_id_list
=
[
'accounting_module'
,
'account_module'
,
'campaign_module'
,
'component_module'
,
'currency_module'
,
'document_ingestion_module'
,
'document_module'
,
'event_module'
,
'image_module'
,
'inventory_module'
,
'knowledge_pad_module'
,
'meeting_module'
,
'notification_message_module'
,
'open_sale_order_module'
,
'organisation_module'
,
'person_module'
,
'product_module'
,
'purchase_order_module'
,
'purchase_trade_condition_module'
,
'query_module'
,
'sale_opportunity_module'
,
'sale_order_module'
,
'sale_packing_list_module'
,
'sale_trade_condition_module'
,
'service_module'
,
'software_product_module'
,
'software_release_module'
,
'support_request_module'
,
'transformation_module'
,
'web_page_module'
,
'web_site_module'
,
]
def
getTitle
(
self
):
return
"Test Vifib Module security"
@
skip
(
'Ignored for now, as security changed a lot'
)
def
test_VifibUserCanNotAccessModules
(
self
):
"""
Check if member of vifib group can not access modules.
"""
portal
=
self
.
getPortal
()
self
.
login
(
user_name
=
'test_vifib_member'
)
error_list
=
[]
for
module_id
in
portal
.
objectIds
(
spec
=
(
'ERP5 Folder'
,)):
if
module_id
in
self
.
used_module_id_list
:
try
:
portal
.
restrictedTraverse
(
module_id
)
except
Unauthorized
:
error_list
.
append
(
"User can not access '%s'"
%
module_id
)
else
:
try
:
self
.
assertRaises
(
Unauthorized
,
portal
.
restrictedTraverse
,
module_id
)
except
AssertionError
:
error_list
.
append
(
"User can access '%s'"
%
module_id
)
self
.
assertEqual
([],
error_list
,
'
\
n
'
.
join
(
error_list
))
master/bt5/vifib_erp5/TestTemplateItem/testVifibPayZen.py
deleted
100644 → 0
View file @
6c747121
# Copyright (c) 2002-2012 Nexedi SA and Contributors. All Rights Reserved.
import
unittest
from
Products.Vifib.tests.testVifibSlapWebService
import
\
TestVifibSlapWebServiceMixin
from
Products.ERP5Type.tests.Sequence
import
SequenceList
from
ZTUtils
import
make_query
import
difflib
from
Products.ERP5Type.tests.backportUnittest
import
skip
class
TestVifibPayZen
(
TestVifibSlapWebServiceMixin
):
def
fakeSlapAuth
(
self
):
pass
def
unfakeSlapAuth
(
self
):
pass
def
stepCheckRelatedSystemEvent
(
self
,
sequence
):
# use catalog to select exactly interesting events
# as there might be more because of running alarms
event
=
self
.
portal
.
portal_catalog
(
portal_type
=
'Payzen Event'
,
default_destination_uid
=
sequence
[
'payment'
].
getUid
(),
limit
=
2
)
self
.
assertEqual
(
1
,
len
(
event
))
event
=
event
[
0
]
self
.
assertEqual
(
event
.
getValidationState
(),
'acknowledged'
)
message
=
event
.
objectValues
()
self
.
assertEqual
(
1
,
len
(
message
))
message
=
message
[
0
]
self
.
assertEqual
(
message
.
getTitle
(),
'Shown Page'
)
self
.
assertEqual
(
message
.
getTextContent
(),
sequence
[
'payment_page'
])
def
getExpectedUserPage
(
self
,
sequence
):
callback
=
self
.
portal
.
web_site_module
.
hosting
.
payzen_callback
query
=
make_query
(
dict
(
transaction
=
sequence
[
'payment'
].
getRelativeUrl
()))
integration_site
=
self
.
portal
.
restrictedTraverse
(
self
.
portal
\
.
portal_preferences
.
getPreferredPayzenIntegrationSite
())
vads_url_cancel
=
callback
.
cancel
.
absolute_url
()
+
'?'
+
query
vads_url_error
=
callback
.
error
.
absolute_url
()
+
'?'
+
query
vads_url_referral
=
callback
.
referral
.
absolute_url
()
+
'?'
+
query
vads_url_refused
=
callback
.
refused
.
absolute_url
()
+
'?'
+
query
vads_url_success
=
callback
.
success
.
absolute_url
()
+
'?'
+
query
vads_url_return
=
getattr
(
callback
,
'return'
).
absolute_url
()
+
'?'
+
query
data_dict
=
dict
(
vads_language
=
'en'
,
vads_url_cancel
=
vads_url_cancel
,
vads_url_error
=
vads_url_error
,
vads_url_referral
=
vads_url_referral
,
vads_url_refused
=
vads_url_refused
,
vads_url_success
=
vads_url_success
,
vads_url_return
=
vads_url_return
,
vads_trans_date
=
sequence
[
'payment'
].
getStartDate
().
toZone
(
'UTC'
)
\
.
asdatetime
().
strftime
(
'%Y%m%d%H%M%S'
),
vads_amount
=
str
(
int
(
round
((
sequence
[
'payment'
]
\
.
PaymentTransaction_getTotalPayablePrice
()
*
-
100
),
0
))),
vads_currency
=
integration_site
.
getMappingFromCategory
(
'resource/currency_module/%s'
%
sequence
[
'payment'
].
getResourceReference
()).
split
(
'/'
)[
-
1
],
vads_trans_id
=
integration_site
.
getMappingFromCategory
(
'causality/%s'
%
sequence
[
'payment'
].
getRelativeUrl
()).
split
(
'_'
)[
1
],
vads_site_id
=
self
.
portal
.
portal_secure_payments
.
vifib_payzen
.
getServiceUsername
()
)
self
.
portal
.
portal_secure_payments
.
vifib_payzen
.
_getFieldList
(
data_dict
)
data_dict
[
'action'
]
=
self
.
portal
.
portal_secure_payments
\
.
vifib_payzen
.
default_link
.
getUrlString
()
expected
=
\
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w'
\
'3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
\
n
<html xmlns="http://www.w3.or'
\
'g/1999/xhtml" xml:lang="en" lang="en">
\
n
<head>
\
n
<meta http-equiv="Co'
\
'ntent-Type" content="text/html; charset=utf-8" />
\
n
<meta http-equiv='
\
'"Content-Script-Type" content="text/javascript" />
\
n
<meta http-equiv'
\
'="Content-Style-Type" content="text/css" />
\
n
<title>title</title>
\
n
<'
\
'/head>
\
n
<body onload="document.payment.submit();">
\
n
<form method="POST'
\
'" id="payment" name="payment"
\
n
action="%(action)s">
\
n
\
n
<input '
\
'type="hidden" name="vads_url_return"
\
n
value="'
\
'%(vads_url_return)s">
\
n
\
n
\
n
<input type="hidden" name="vads_site_id" '
\
'value="%(vads_site_id)s">
\
n
\
n
\
n
<input type="hidden" name="vads_url_e'
\
'rror"
\
n
value="%(vads_url_error)s">
\
n
\
n
\
n
<input type="hidden'
\
'" name="vads_trans_id" value="%(vads_trans_id)s">
\
n
\
n
\
n
<input type="'
\
'hidden" name="vads_action_mode"
\
n
value="INTERACTIVE">
\
n
\
n
\
n
'
\
'<input type="hidden" name="vads_url_success"
\
n
value="'
\
'%(vads_url_success)s">
\
n
\
n
\
n
<input type="hidden" name="vads_url_refe'
\
'rral"
\
n
value="%(vads_url_referral)s">
\
n
\
n
\
n
<input type="hid'
\
'den" name="vads_page_action"
\
n
value="PAYMENT">
\
n
\
n
\
n
<input '
\
'type="hidden" name="vads_trans_date"
\
n
value="'
\
'%(vads_trans_date)s">
\
n
\
n
\
n
<input type="hidden" name="vads_url_refus'
\
'ed"
\
n
value="%(vads_url_refused)s">
\
n
\
n
\
n
<input type="hidden'
\
'" name="vads_url_cancel"
\
n
value="%(vads_url_cancel)s">
\
n
\
n
\
n
'
\
' <input type="hidden" name="vads_ctx_mode" value="TEST">
\
n
\
n
\
n
<input '
\
'type="hidden" name="vads_payment_config"
\
n
value="SINGLE">
\
n
\
n
'
\
'
\
n
<input type="hidden" name="vads_contrib" value="ERP5">
\
n
\
n
\
n
<inp'
\
'ut type="hidden" name="signature"
\
n
value="%(signature)s">
\
n
\
n
'
\
'
\
n
<input type="hidden" name="vads_language" value="%(vads_language)s">
\
n
\
n
\
n
<inpu'
\
't type="hidden" name="vads_currency" value="%(vads_currency)s">
\
n
\
n
\
n
'
\
' <input type="hidden" name="vads_amount" value="%(vads_amount)s">
\
n
\
n
\
n
'
\
' <input type="hidden" name="vads_version" value="V2">
\
n
\
n
<input type="s'
\
'ubmit" value="Click to pay">
\
n
</form>
\
n
</body>
\
n
</html>'
%
data_dict
return
expected
def
stepCheckPaymentPage
(
self
,
sequence
):
expected
=
self
.
getExpectedUserPage
(
sequence
)
self
.
assertEqual
(
sequence
[
'payment_page'
],
expected
,
'
\
n
'
.
join
([
q
for
q
in
difflib
.
unified_diff
(
expected
.
split
(
'
\
n
'
),
sequence
[
'payment_page'
].
split
(
'
\
n
'
))]))
def
stepCallStartPaymentOnConfirmedPayment
(
self
,
sequence
,
**
kw
):
current_skin
=
self
.
app
.
REQUEST
.
get
(
'portal_skin'
,
'View'
)
try
:
self
.
changeSkin
(
'Hosting'
)
sequence
[
'payment'
]
=
self
.
portal
.
portal_catalog
.
getResultValue
(
portal_type
=
"Payment Transaction"
,
simulation_state
=
"started"
)
sequence
[
'payment_page'
]
=
sequence
[
'payment'
].
__of__
(
self
.
portal
.
web_site_module
.
hosting
).
AccountingTransaction_startPayment
()
finally
:
self
.
changeSkin
(
current_skin
)
def
test_AccountingTransaction_startPayment
(
self
):
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
LoginWebUser
\
CallStartPaymentOnConfirmedPayment
\
CleanTic
\
Logout
\
LoginERP5TypeTestCase
\
CheckPaymentPage
\
CheckRelatedSystemEvent
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
stepFetchStartedPayment
(
self
,
sequence
,
**
kw
):
sequence
[
'payment'
]
=
self
.
portal
.
portal_catalog
.
getResultValue
(
portal_type
=
"Payment Transaction"
,
simulation_state
=
"started"
)
def
stepCheckUnknownPayment
(
self
,
sequence
):
self
.
assertEqual
(
sequence
[
'payment'
].
getSimulationState
(),
'started'
)
self
.
assertEqual
(
self
.
portal
.
portal_catalog
.
countResults
(
portal_type
=
'Payzen Event'
,
default_destination_uid
=
sequence
[
'payment'
]
\
.
getUid
(),
limit
=
1
)[
0
][
0
],
0
)
def
test_PaymentTransaction_unknown
(
self
):
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
LoginWebUser
\
FetchStartedPayment
\
Logout
\
LoginERP5TypeTestCase
\
CheckUnknownPayment
\
Logout
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
def
stepCheckRegisteredPayment
(
self
,
sequence
):
self
.
assertEqual
(
sequence
[
'payment'
].
getSimulationState
(),
'started'
)
event_list
=
self
.
portal
.
portal_catalog
(
portal_type
=
'Payzen Event'
,
default_destination_uid
=
sequence
[
'payment'
].
getUid
(),
limit
=
2
)
self
.
assertEqual
(
len
(
event_list
),
1
)
event
=
event_list
[
0
]
self
.
assertEqual
(
event
.
getTitle
(),
'User navigation script for %s'
%
sequence
[
'payment'
].
getTitle
())
message_list
=
event
.
contentValues
(
portal_type
=
'Payzen Event Message'
)
self
.
assertEqual
(
len
(
message_list
),
1
)
message
=
message_list
[
0
]
expected
=
self
.
getExpectedUserPage
(
sequence
)
self
.
assertEqual
(
message
.
getTextContent
(),
expected
,
'
\
n
'
.
join
([
q
for
q
in
difflib
.
unified_diff
(
expected
.
split
(
'
\
n
'
),
message
.
getTextContent
().
split
(
'
\
n
'
))]))
def
test_PaymentTransaction_registered
(
self
):
sequence_list
=
SequenceList
()
sequence_string
=
self
.
register_new_user_sequence_string
+
'
\
LoginWebUser
\
CallStartPaymentOnConfirmedPayment
\
CleanTic
\
Logout
\
LoginERP5TypeTestCase
\
CheckPaymentPage
\
CleanTic
\
CheckRelatedSystemEvent
\
Logout
\
LoginWebUser
\
FetchStartedPayment
\
CleanTic
\
Logout
\
LoginERP5TypeTestCase
\
CheckRegisteredPayment
\
'
sequence_list
.
addSequenceString
(
sequence_string
)
sequence_list
.
play
(
self
)
@
skip
(
'Test not ready.'
)
def
test_PaymentTransaction_updateStatus_registered_no_change
(
self
):
raise
NotImplementedError
@
skip
(
'Test not ready.'
)
def
test_PaymentTransaction_updateStatus_registered_paid
(
self
):
raise
NotImplementedError
def
test_suite
():
suite
=
unittest
.
TestSuite
()
suite
.
addTest
(
unittest
.
makeSuite
(
TestVifibPayZen
))
return
suite
master/bt5/vifib_erp5/TestTemplateItem/testVifibPersonSecurity.py
deleted
100644 → 0
View file @
6c747121
##############################################################################
#
# Copyright (c) 2002-2010 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility 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
# guarantees 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from
VifibMixin
import
testVifibMixin
class
TestVifibPersonSecurity
(
testVifibMixin
):
"""
Test Vifib Person security
"""
def
getTitle
(
self
):
return
"Test Vifib Person security"
def
test_base_HRAdminCanCreateDeletePerson
(
self
):
"""
Check if HR Admin can create and delete person document.
"""
self
.
login
(
user_name
=
'test_hr_admin'
)
# Try to acceed the person module through restrictedTraverse
# This will test the security of the module
person_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Person'
)
person_module
=
self
.
portal
.
restrictedTraverse
(
person_module_id
)
# Create a user
new_person
=
person_module
.
newContent
(
portal_type
=
"Person"
)
new_person
.
portal_workflow
.
doActionFor
(
new_person
,
"create_user_action"
,
reference
=
"test_created_user"
,
password
=
"test_created_password"
,
password_confirm
=
"test_created_password"
,
)
new_person
.
delete
()
def
test_base_HRAdminCanInvalidatePerson
(
self
):
"""
Check if HR Admin can invalidate person document.
"""
self
.
login
(
user_name
=
'test_hr_admin'
)
# Try to acceed the person module through restrictedTraverse
# This will test the security of the module
person_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Person'
)
person_module
=
self
.
portal
.
restrictedTraverse
(
person_module_id
)
# Create a user
new_person
=
person_module
.
newContent
(
portal_type
=
"Person"
,
first_name
=
'Test'
,
last_name
=
'Invalidated Vifib User'
,
)
# open assignment in order to trigger open order creation
assignment
=
new_person
.
newContent
(
portal_type
=
'Assignment'
)
assignment
.
portal_workflow
.
doActionFor
(
assignment
,
"open_action"
)
# tic to have open order created and indexed
self
.
stepTic
()
new_person
.
edit
(
career_role
=
'client'
,
default_email_text
=
"test@example.com"
)
new_person
.
portal_workflow
.
doActionFor
(
new_person
,
"validate_action"
)
new_person
.
portal_workflow
.
doActionFor
(
new_person
,
"invalidate_action"
)
def
test_base_HRAdminCanCreateAssignment
(
self
):
"""
Check if HR Admin can access a person profile and create/update/close assignment.
"""
self
.
login
(
user_name
=
'test_hr_admin'
)
# Try to acceed the person module through restrictedTraverse
# This will test the security of the module
person_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Person'
)
person_module
=
self
.
portal
.
restrictedTraverse
(
person_module_id
)
# Search a user
new_person
=
person_module
.
searchFolder
(
id
=
'test_updated_vifib_user'
)
new_person
=
new_person
[
0
].
getObject
()
# Modify the user
new_person
.
edit
(
first_name
=
'Test'
,
last_name
=
'Updated Vifib User'
)
# Create an assignment
assignment
=
new_person
.
newContent
(
portal_type
=
'Assignment'
)
# Update the assignment
assignment
.
edit
(
title
=
'Test assignment'
)
# Open the assignment
assignment
.
portal_workflow
.
doActionFor
(
assignment
,
"open_action"
)
# Update the assignment
assignment
.
portal_workflow
.
doActionFor
(
assignment
,
"update_action"
)
assignment
.
edit
(
title
=
"Test Edition"
)
# Open the assignment
assignment
.
portal_workflow
.
doActionFor
(
assignment
,
"open_action"
)
# Close the assignment
assignment
.
portal_workflow
.
doActionFor
(
assignment
,
"close_action"
)
master/bt5/vifib_erp5/TestTemplateItem/testVifibUserDeveloper.py
deleted
100644 → 0
View file @
6c747121
##############################################################################
#
# Copyright (c) 2002-2010 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility 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
# guarantees 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from
VifibMixin
import
testVifibMixin
class
TestVifibUserDeveloper
(
testVifibMixin
):
"""
Test Vifib User: developer access to the system
"""
def
getTitle
(
self
):
return
"Test Vifib User Developer security"
def
test_base_UserDeveloperCanCreateSoftwareRelease
(
self
):
"""
Check if developer can create software release
"""
login_id
=
'test_vifib_user_developer'
self
.
login
(
user_name
=
login_id
)
# Try to acceed the software release module through restrictedTraverse
# This will test the security of the module
software_release_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Software Release'
)
software_release_module
=
self
.
portal
.
restrictedTraverse
(
software_release_module_id
)
# Add software_release
software_release
=
software_release_module
.
newContent
(
portal_type
=
'Software Release'
)
# User has to access his person profile
person_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Person'
)
person_module
=
self
.
portal
.
restrictedTraverse
(
person_module_id
)
person_value
=
person_module
.
restrictedTraverse
(
login_id
)
# Edit the computer
software_release
.
edit
(
title
=
'Test Vifib Software Release'
,
reference
=
'test_software_release'
,
version
=
1
,
language
=
'en'
,
url_string
=
'http://example.com/live_test_software_release.cfg'
,
contributor_value
=
person_value
,
)
# Submit software release
software_release
.
portal_workflow
.
doActionFor
(
software_release
,
'submit_action'
)
# Check if he can still access it
self
.
portal
.
restrictedTraverse
(
software_release
.
getRelativeUrl
())
self
.
logout
()
self
.
login
(
user_name
=
'test_vifib_developer'
)
# Try to acceed the software product module through restrictedTraverse
# This will test the security of the module
software_product_module_id
=
self
.
portal
.
getDefaultModuleId
(
portal_type
=
'Software Product'
)
software_product_module
=
self
.
portal
.
restrictedTraverse
(
software_product_module_id
)
# Add software_release
software_product
=
software_product_module
.
newContent
(
portal_type
=
'Software Product'
)
# Put some information
software_product
.
edit
(
title
=
'test software product'
,
)
software_product
.
portal_workflow
.
doActionFor
(
software_product
,
'publish_action'
)
# Edit software release
software_release
.
edit
(
aggregate_value
=
software_product
,
)
# Accept software release
software_release
.
portal_workflow
.
doActionFor
(
software_release
,
'publish_action'
)
master/bt5/vifib_erp5/bt/revision
View file @
422d6ebc
588
\ No newline at end of file
589
\ No newline at end of file
master/bt5/vifib_erp5/bt/template_test_id_list
deleted
100644 → 0
View file @
6c747121
testVifibPersonSecurity
testVifibCRMSecurity
testVifibModuleSecurity
testVifibUserDeveloper
testVifibComputerNetworkSecurity
testVifibComputerModelSecurity
testVifibConstraint
testVifibPayZen
testVifibComputerWithComputerModel
\ 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