Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos-mynij-dev
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
Mynij
slapos-mynij-dev
Commits
98b747a1
Commit
98b747a1
authored
Mar 08, 2019
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos-sr-testing: Add test for slapos-master.
parent
1bc23193
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
547 additions
and
2 deletions
+547
-2
software/slapos-master/test/README.md
software/slapos-master/test/README.md
+1
-0
software/slapos-master/test/setup.py
software/slapos-master/test/setup.py
+52
-0
software/slapos-master/test/test/__init__.py
software/slapos-master/test/test/__init__.py
+39
-0
software/slapos-master/test/test/test_erp5.py
software/slapos-master/test/test/test_erp5.py
+116
-0
software/slapos-master/test/utils.py
software/slapos-master/test/utils.py
+331
-0
software/slapos-sr-testing/buildout.hash.cfg
software/slapos-sr-testing/buildout.hash.cfg
+1
-1
software/slapos-sr-testing/instance.cfg
software/slapos-sr-testing/instance.cfg
+1
-1
software/slapos-sr-testing/software.cfg
software/slapos-sr-testing/software.cfg
+6
-0
No files found.
software/slapos-master/test/README.md
0 → 100644
View file @
98b747a1
Tests for ERP5 software release
software/slapos-master/test/setup.py
0 → 100644
View file @
98b747a1
##############################################################################
#
# Copyright (c) 2018 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 3
# 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.
#
##############################################################################
from
setuptools
import
setup
,
find_packages
version
=
'0.0.1.dev0'
name
=
'slapos.test.slapos-master'
long_description
=
open
(
"README.md"
).
read
()
setup
(
name
=
name
,
version
=
version
,
description
=
"Test for SlapOS' Slapos Master software releae"
,
long_description
=
long_description
,
long_description_content_type
=
'text/markdown'
,
maintainer
=
"Nexedi"
,
maintainer_email
=
"info@nexedi.com"
,
url
=
"https://lab.nexedi.com/nexedi/slapos"
,
packages
=
find_packages
(),
install_requires
=
[
'slapos.core'
,
'supervisor'
,
'slapos.libnetworkcache'
,
'erp5.util'
,
'psutil'
,
'requests'
,
],
zip_safe
=
True
,
test_suite
=
'test'
,
)
software/slapos-master/test/test/__init__.py
0 → 100644
View file @
98b747a1
##############################################################################
#
# Copyright (c) 2018 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 3
# 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
os
import
unittest
import
logging
if
os
.
environ
.
get
(
'DEBUG'
):
raise
ValueError
(
"Don't set DEBUG - it breaks postfix compilation - set SLAPOS_TEST_DEBUG instead."
)
debug_mode
=
os
.
environ
.
get
(
'SLAPOS_TEST_DEBUG'
)
# for development: debugging logs and install Ctrl+C handler
if
debug_mode
:
logging
.
basicConfig
(
level
=
logging
.
DEBUG
)
unittest
.
installHandler
()
software/slapos-master/test/test/test_erp5.py
0 → 100644
View file @
98b747a1
##############################################################################
#
# Copyright (c) 2018 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 3
# 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
os
import
json
import
glob
import
urlparse
import
logging
import
time
import
requests
from
utils
import
SlapOSInstanceTestCase
class
ERP5TestCase
(
SlapOSInstanceTestCase
):
"""Test the remote driver on a minimal web server.
"""
logger
=
logging
.
getLogger
(
__name__
)
@
classmethod
def
getSoftwareURLList
(
cls
):
return
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'software.cfg'
)),
)
def
getRootPartitionConnectionParameterDict
(
self
):
"""Return the output paramters from the root partition"""
return
json
.
loads
(
self
.
computer_partition
.
getConnectionParameterDict
()[
'_'
])
class
TestPublishedURLIsReachableMixin
(
object
):
"""Mixin that checks that default page of ERP5 is reachable.
"""
def
_checkERP5IsReachable
(
self
,
url
):
# What happens is that instanciation just create the services, but does not
# wait for ERP5 to be initialized. When this test run ERP5 instance is
# instanciated, but zope is still busy creating the site and haproxy replies
# with 503 Service Unavailable.
# If we can move the "create site" in slapos node instance, then this retry loop
# would not be necessary.
for
i
in
range
(
1
,
20
):
r
=
requests
.
get
(
url
,
verify
=
False
)
# XXX can we get CA from caucase already ?
if
r
.
status_code
==
requests
.
codes
.
service_unavailable
:
delay
=
i
*
2
self
.
logger
.
warn
(
"ERP5 was not available, sleeping for %ds and retrying"
,
delay
)
time
.
sleep
(
delay
)
continue
if
r
.
status_code
!=
requests
.
codes
.
ok
:
r
.
raise_for_status
()
break
self
.
assertIn
(
"ERP5"
,
r
.
text
)
def
test_published_family_default_v6_is_reachable
(
self
):
"""Tests the IPv6 URL published by the root partition is reachable.
"""
param_dict
=
self
.
getRootPartitionConnectionParameterDict
()
self
.
_checkERP5IsReachable
(
urlparse
.
urljoin
(
param_dict
[
'family-default-v6'
],
param_dict
[
'site-id'
]))
def
test_published_family_default_v4_is_reachable
(
self
):
"""Tests the IPv4 URL published by the root partition is reachable.
"""
param_dict
=
self
.
getRootPartitionConnectionParameterDict
()
self
.
_checkERP5IsReachable
(
urlparse
.
urljoin
(
param_dict
[
'family-default'
],
param_dict
[
'site-id'
]))
class
TestDefaultParameters
(
ERP5TestCase
,
TestPublishedURLIsReachableMixin
):
"""Test ERP5 can be instanciated with no parameters
"""
__partition_reference__
=
'defp'
class
TestDisableTestRunner
(
ERP5TestCase
,
TestPublishedURLIsReachableMixin
):
"""Test ERP5 can be instanciated without test runner.
"""
__partition_reference__
=
'distr'
@
classmethod
def
getInstanceParameterDict
(
cls
):
return
{
'_'
:
json
.
dumps
({
'test-runner'
:
{
'enabled'
:
False
}})}
def
test_no_runUnitTestScript
(
self
):
"""No runUnitTest script should be generated in any partition.
"""
# self.computer_partition_root_path is the path of root partition.
# we want to assert that no scripts exist in any partition.
bin_programs
=
[
os
.
path
.
basename
(
path
)
for
path
in
glob
.
glob
(
"{}/../*/bin/*"
.
format
(
self
.
computer_partition_root_path
))]
self
.
assertTrue
(
bin_programs
)
# just to check the glob was correct.
self
.
assertNotIn
(
'runUnitTest'
,
bin_programs
)
self
.
assertNotIn
(
'runTestSuite'
,
bin_programs
)
software/slapos-master/test/utils.py
0 → 100644
View file @
98b747a1
This diff is collapsed.
Click to expand it.
software/slapos-sr-testing/buildout.hash.cfg
View file @
98b747a1
...
@@ -15,4 +15,4 @@
...
@@ -15,4 +15,4 @@
[template]
[template]
filename = instance.cfg
filename = instance.cfg
md5sum =
ceb421decde6512ffee3abea463c4c7a
md5sum =
72c3b8bfb061a73e7a225c222bb598b4
software/slapos-sr-testing/instance.cfg
View file @
98b747a1
...
@@ -28,7 +28,7 @@ bin = $${buildout:directory}/bin
...
@@ -28,7 +28,7 @@ bin = $${buildout:directory}/bin
working-dir = $${buildout:directory}/tmp
working-dir = $${buildout:directory}/tmp
[test-list]
[test-list]
path_list = ${slapos.test.caddy-frontend-setup:setup},${slapos.test.erp5-setup:setup},${slapos.test.kvm-setup:setup},${slapos.test.monitor-setup:setup},${slapos.test.plantuml-setup:setup},${slapos.test.powerdns-setup:setup},${slapos.test.proftpd-setup:setup},${slapos.test.re6stnet-setup:setup},${slapos.test.seleniumserver-setup:setup},${slapos.test.slaprunner-setup:setup},${slapos.test.helloworld-setup:setup}
path_list = ${slapos.test.caddy-frontend-setup:setup},${slapos.test.erp5-setup:setup},${slapos.test.
slapos-master-setup:setup},${slapos.test.
kvm-setup:setup},${slapos.test.monitor-setup:setup},${slapos.test.plantuml-setup:setup},${slapos.test.powerdns-setup:setup},${slapos.test.proftpd-setup:setup},${slapos.test.re6stnet-setup:setup},${slapos.test.seleniumserver-setup:setup},${slapos.test.slaprunner-setup:setup},${slapos.test.helloworld-setup:setup}
[slapos-test-runner]
[slapos-test-runner]
recipe = slapos.cookbook:wrapper
recipe = slapos.cookbook:wrapper
...
...
software/slapos-sr-testing/software.cfg
View file @
98b747a1
...
@@ -31,6 +31,11 @@ setup = ${slapos-repository:location}/software/caddy-frontend/test/
...
@@ -31,6 +31,11 @@ setup = ${slapos-repository:location}/software/caddy-frontend/test/
egg = slapos.test.erp5
egg = slapos.test.erp5
setup = ${slapos-repository:location}/software/erp5/test/
setup = ${slapos-repository:location}/software/erp5/test/
[slapos.test.slapos-master-setup]
<= setup-develop-egg
egg = slapos.test.slapos-master
setup = ${slapos-repository:location}/software/slapos-master/test/
[slapos.test.kvm-setup]
[slapos.test.kvm-setup]
<= setup-develop-egg
<= setup-develop-egg
egg = slapos.test.kvm
egg = slapos.test.kvm
...
@@ -87,6 +92,7 @@ eggs =
...
@@ -87,6 +92,7 @@ eggs =
slapos.core
slapos.core
${slapos.test.caddy-frontend-setup:egg}
${slapos.test.caddy-frontend-setup:egg}
${slapos.test.erp5-setup:egg}
${slapos.test.erp5-setup:egg}
${slapos.test.slapos-master-setup:egg}
${slapos.test.kvm-setup:egg}
${slapos.test.kvm-setup:egg}
${slapos.test.monitor-setup:egg}
${slapos.test.monitor-setup:egg}
${slapos.test.plantuml-setup:egg}
${slapos.test.plantuml-setup:egg}
...
...
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