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
Labels
Merge Requests
18
Merge Requests
18
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
slapos.core
Commits
a88369fc
Commit
a88369fc
authored
Aug 06, 2020
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add test for Test upgrade from older versions of ERP5
parent
a5da7be3
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
0 deletions
+111
-0
master/product/SlapOS/tests/testSlapOSUpgradeInstanceWithOldDataFs.py
...ct/SlapOS/tests/testSlapOSUpgradeInstanceWithOldDataFs.py
+74
-0
master/tests/__init__.py
master/tests/__init__.py
+37
-0
No files found.
master/product/SlapOS/tests/testSlapOSUpgradeInstanceWithOldDataFs.py
0 → 100644
View file @
a88369fc
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2012 Vifib 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
testSlapOSMixin
import
testSlapOSMixin
import
unittest
class
TestUpgradeInstanceWithOldDataFs
(
testSlapOSMixin
):
def
afterSetUp
(
self
):
# Do nothing as all work is done on the saved testSlapOSMixin already
# When save the data.fs
pass
def
getBusinessTemplateList
(
self
):
# we dont need bt5 as this test is supposed to run only as --load
return
[
'erp5_core'
]
def
testUpgrade
(
self
):
if
not
self
.
portal
.
portal_templates
.
getRepositoryList
():
self
.
setupAutomaticBusinessTemplateRepository
(
searchable_business_template_list
=
[
"erp5_core"
,
"erp5_base"
,
"slapos_erp5"
,
"erp5_slapos_tutorial"
])
alarm
=
self
.
portal
.
portal_alarms
.
promise_check_upgrade
alarm
.
solve
()
self
.
tic
()
self
.
assertEquals
(
alarm
.
getLastActiveProcess
().
getResultList
(),
[])
bt5_list
=
self
.
portal
.
portal_templates
.
getInstalledBusinessTemplateTitleList
()
self
.
assertTrue
(
'slapos_erp5'
in
bt5_list
,
bt5_list
)
# Make sure that *all* Portal Type can be loaded after upgrade
import
erp5.portal_type
from
Products.ERP5Type.dynamic.lazy_class
import
ERP5BaseBroken
error_list
=
[]
for
portal_type_obj
in
self
.
portal
.
portal_types
.
listTypeInfo
():
portal_type_id
=
portal_type_obj
.
getId
()
portal_type_class
=
getattr
(
erp5
.
portal_type
,
portal_type_id
)
portal_type_class
.
loadClass
()
if
issubclass
(
portal_type_class
,
ERP5BaseBroken
):
error_list
.
append
(
portal_type_id
)
self
.
assertEquals
(
error_list
,
[],
msg
=
"The following Portal Type classes could not be loaded (see zLOG.log): %r"
%
error_list
)
def
test_suite
():
suite
=
unittest
.
TestSuite
()
suite
.
addTest
(
unittest
.
makeSuite
(
TestUpgradeInstanceWithOldDataFs
))
return
suite
master/tests/__init__.py
View file @
a88369fc
...
...
@@ -60,6 +60,43 @@ class SlapOSCloud(SavedTestSuite, ProjectTestSuite):
test
=
':'
in
full_test
and
full_test
.
split
(
':'
)[
1
]
or
full_test
if
test
.
startswith
(
'testFunctional'
):
return
self
.
_updateFunctionalTestResponse
(
self
.
runUnitTest
(
full_test
))
elif
test
==
'testSlapOSUpgradeInstanceWithOldDataFs'
:
old_data_path
=
None
for
path
in
sys
.
path
:
if
path
.
endswith
(
'/slapos-bin'
):
old_data_path
=
os
.
path
.
join
(
path
,
'test_data'
,
test
)
if
not
os
.
path
.
isdir
(
old_data_path
):
return
dict
(
status_code
=-
1
,
test_count
=
1
,
failure_count
=
1
,
stderr
=
'%s does not exist or is not a directory'
%
old_data_path
)
break
else
:
return
dict
(
status_code
=-
1
,
test_count
=
1
,
failure_count
=
1
,
stderr
=
'slapos-bin repository not found in %s'
%
'
\
n
'
.
join
(
sys
.
path
))
instance_home
=
(
self
.
instance
and
'unit_test.%u'
%
self
.
instance
or
'unit_test'
)
import
shutil
shutil
.
rmtree
(
instance_home
,
ignore_errors
=
True
)
os
.
makedirs
(
os
.
path
.
join
(
instance_home
,
'var'
))
shutil
.
copyfile
(
os
.
path
.
join
(
old_data_path
,
'Data.fs'
),
os
.
path
.
join
(
instance_home
,
'var'
,
'Data.fs'
))
shutil
.
copyfile
(
os
.
path
.
join
(
old_data_path
,
'dump.sql'
),
os
.
path
.
join
(
instance_home
,
'dump.sql'
))
return
self
.
runUnitTest
(
'--load'
,
'--portal_id=erp5'
,
'--enable_full_indexing=portal_types,portal_property_sheets'
,
full_test
)
return
super
(
SlapOSCloud
,
self
).
run
(
full_test
)
def
_updateFunctionalTestResponse
(
self
,
status_dict
):
...
...
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