Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
officejs-appstore
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
Romain Courteaud
officejs-appstore
Commits
f591f171
Commit
f591f171
authored
Jan 23, 2019
by
Romain Courteaud
🐙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[officejs_test] Draft mixin using configurator
parent
4c6224ba
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
284 additions
and
1 deletion
+284
-1
bt5/officejs_test/TestTemplateItem/portal_components/test.erp5.testOfficeJSAppstoreMixin.py
.../portal_components/test.erp5.testOfficeJSAppstoreMixin.py
+180
-0
bt5/officejs_test/TestTemplateItem/portal_components/test.erp5.testOfficeJSAppstoreMixin.xml
...portal_components/test.erp5.testOfficeJSAppstoreMixin.xml
+102
-0
bt5/officejs_test/bt/template_test_id_list
bt5/officejs_test/bt/template_test_id_list
+2
-1
No files found.
bt5/officejs_test/TestTemplateItem/portal_components/test.erp5.testOfficeJSAppstoreMixin.py
0 → 100644
View file @
f591f171
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2019 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.
#
##############################################################################
import
random
import
transaction
import
unittest
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
from
Products.ERP5Type.tests.utils
import
DummyMailHost
from
Products.ERP5Type.Utils
import
convertToUpperCase
from
AccessControl.SecurityManagement
import
getSecurityManager
,
\
setSecurityManager
from
App.config
import
getConfiguration
config
=
getConfiguration
()
class
testOfficeJSAppstoreMixin
(
ERP5TypeTestCase
):
abort_transaction
=
0
def
clearCache
(
self
):
self
.
portal
.
portal_caches
.
clearAllCache
()
self
.
portal
.
portal_workflow
.
refreshWorklistCache
()
def
createAlarmStep
(
self
):
def
makeCallAlarm
(
alarm
):
def
callAlarm
(
*
args
,
**
kwargs
):
sm
=
getSecurityManager
()
self
.
login
()
try
:
alarm
.
activeSense
(
params
=
kwargs
)
self
.
commit
()
finally
:
setSecurityManager
(
sm
)
return
callAlarm
for
alarm
in
self
.
portal
.
portal_alarms
.
contentValues
():
if
alarm
.
isEnabled
():
setattr
(
self
,
'stepCall'
+
convertToUpperCase
(
alarm
.
getId
())
\
+
'Alarm'
,
makeCallAlarm
(
alarm
))
def
setupPortalAlarms
(
self
):
if
not
self
.
portal
.
portal_alarms
.
isSubscribed
():
self
.
portal
.
portal_alarms
.
subscribe
()
self
.
assertTrue
(
self
.
portal
.
portal_alarms
.
isSubscribed
())
def
_setUpDummyMailHost
(
self
):
"""Do not play with NON persistent replacement of MailHost"""
ERP5TypeTestCase
.
_setUpDummyMailHost
(
self
)
def
_restoreMailHost
(
self
):
"""Do not play with NON persistent replacement of MailHost"""
ERP5TypeTestCase
.
_restoreMailHost
(
self
)
def
beforeTearDown
(
self
):
self
.
deSetUpPersistentDummyMailHost
()
if
self
.
abort_transaction
:
transaction
.
abort
()
def
getUserFolder
(
self
):
"""
Return the user folder
"""
return
getattr
(
self
.
getPortal
(),
'acl_users'
,
None
)
def
setUpOnce
(
self
):
self
.
commit
()
self
.
portal
.
portal_templates
.
updateRepositoryBusinessTemplateList
(
repository_list
=
self
.
portal
.
portal_templates
.
getRepositoryList
())
self
.
commit
()
self
.
launchConfigurator
()
def
afterSetUp
(
self
):
self
.
login
()
self
.
createAlarmStep
()
self
.
portal
.
portal_caches
.
erp5_site_global_id
=
'%s'
%
random
.
random
()
self
.
portal
.
portal_caches
.
_p_changed
=
1
self
.
commit
()
self
.
portal
.
portal_caches
.
updateCache
()
try
:
initsite
=
config
.
product_config
[
"initsite"
]
except
KeyError
:
initsite
=
{}
if
initsite
.
get
(
"cloudooo_url"
,
None
)
is
None
:
initsite
[
"cloudooo_url"
]
=
"https://cloudooo.erp5.net"
config
.
product_config
[
"initsite"
]
=
initsite
if
not
getattr
(
self
.
portal
,
'is_site_bootstrapped'
,
0
):
self
.
portal
.
is_site_bootstrapped
=
1
self
.
bootstrapSite
()
self
.
portal
.
_p_changed
=
1
self
.
commit
()
def
deSetUpPersistentDummyMailHost
(
self
):
if
'MailHost'
in
self
.
portal
.
objectIds
():
self
.
portal
.
manage_delObjects
([
'MailHost'
])
self
.
portal
.
manage_addProduct
[
'MailHost'
].
manage_addMailHost
(
'MailHost'
)
self
.
commit
()
def
setUpPersistentDummyMailHost
(
self
):
if
'MailHost'
in
self
.
portal
.
objectIds
():
self
.
portal
.
manage_delObjects
([
'MailHost'
])
self
.
portal
.
_setObject
(
'MailHost'
,
DummyMailHost
(
'MailHost'
))
self
.
portal
.
email_from_address
=
'romain@nexedi.com'
self
.
portal
.
email_to_address
=
'romain@nexedi.com'
def
getBusinessConfiguration
(
self
):
return
self
.
portal
.
business_configuration_module
[
\
"officejs_appstore_configuration_workflow"
]
def
launchConfigurator
(
self
):
self
.
login
()
# Create new Configuration
business_configuration
=
self
.
getBusinessConfiguration
()
response_dict
=
{}
while
response_dict
.
get
(
"command"
,
"next"
)
!=
"install"
:
response_dict
=
self
.
portal
.
portal_configurator
.
_next
(
business_configuration
,
{})
self
.
tic
()
self
.
portal
.
portal_configurator
.
startInstallation
(
business_configuration
,
REQUEST
=
self
.
portal
.
REQUEST
)
def
bootstrapSite
(
self
):
self
.
setupPortalAlarms
()
self
.
clearCache
()
self
.
tic
()
def
getBusinessTemplateList
(
self
):
"""
Install the business templates.
"""
result
=
[
'officejs_appstore_configurator'
]
return
result
class
TestOfficeJSAppstoreDummy
(
testOfficeJSAppstoreMixin
):
run_all_test
=
1
def
test
(
self
):
"""Dummy test in order to fire up Business Template testing"""
self
.
assertTrue
(
self
.
getTitle
())
def
getTitle
(
self
):
return
"Dummy tests in order to have tests from BT5 run"
def
test_suite
():
suite
=
unittest
.
TestSuite
()
suite
.
addTest
(
unittest
.
makeSuite
(
TestOfficeJSAppstoreDummy
))
return
suite
\ No newline at end of file
bt5/officejs_test/TestTemplateItem/portal_components/test.erp5.testOfficeJSAppstoreMixin.xml
0 → 100644
View file @
f591f171
<?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>
testOfficeJSAppstoreMixin
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testOfficeJSAppstoreMixin
</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>
bt5/officejs_test/bt/template_test_id_list
View file @
f591f171
...
...
@@ -2,4 +2,5 @@ test.erp5.testOfficeJSSecurity
test.erp5.testOfficeJSScenario
test.erp5.testOfficeJSScenarioRjsUI
test.erp5.testFunctionalOfficeJSAppstoreUI
test.erp5.testOfficeJSScenarioAppsore
\ No newline at end of file
test.erp5.testOfficeJSScenarioAppsore
test.erp5.testOfficeJSAppstoreMixin
\ 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