From 746c44f239d27ed6c453f6da13bf67a23996277b Mon Sep 17 00:00:00 2001 From: Alain Takoudjou <alain.takoudjou@nexedi.com> Date: Tue, 26 May 2020 17:09:09 +0200 Subject: [PATCH] repman: add basic tests, add repman to slapos-sr-testing software --- software/repman/test/README.md | 1 + software/repman/test/setup.py | 53 ++++++++++++++++++++++ software/repman/test/test.py | 60 +++++++++++++++++++++++++ software/slapos-sr-testing/software.cfg | 7 +++ 4 files changed, 121 insertions(+) create mode 100644 software/repman/test/README.md create mode 100644 software/repman/test/setup.py create mode 100644 software/repman/test/test.py diff --git a/software/repman/test/README.md b/software/repman/test/README.md new file mode 100644 index 0000000000..baef8468d7 --- /dev/null +++ b/software/repman/test/README.md @@ -0,0 +1 @@ +Tests for Replication Manager software release diff --git a/software/repman/test/setup.py b/software/repman/test/setup.py new file mode 100644 index 0000000000..1dc3cd3e6a --- /dev/null +++ b/software/repman/test/setup.py @@ -0,0 +1,53 @@ +############################################################################## +# +# 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.repman' +long_description = open("README.md").read() + +setup( + name=name, + version=version, + description="Test for SlapOS' Replication Manager", + 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', + 'slapos.libnetworkcache', + 'erp5.util', + 'supervisor', + 'pexpect', + 'requests', + ], + zip_safe=True, + test_suite='test', +) diff --git a/software/repman/test/test.py b/software/repman/test/test.py new file mode 100644 index 0000000000..d2fe0a4fe2 --- /dev/null +++ b/software/repman/test/test.py @@ -0,0 +1,60 @@ +############################################################################## +# +# 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 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 __future__ import unicode_literals + +import os +import textwrap +import logging +import tempfile +import time +from six.moves.urllib.parse import urlparse, urljoin + +import pexpect +import requests + +from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass + +setUpModule, SlapOSInstanceTestCase = makeModuleSetUpAndTestCaseClass( + os.path.abspath( + os.path.join(os.path.dirname(__file__), '..', 'software.cfg'))) + + +class TestRepman(SlapOSInstanceTestCase): + __partition_reference__ = 'R' # solve path too long for postgresql and unicorn + + @classmethod + def getInstanceSoftwareType(cls): + return 'default' + + def setUp(self): + self.backend_url = self.computer_partition.getConnectionParameterDict( + )['backend-url'] + + def test_http_get(self): + resp = requests.get(self.backend_url, verify=False) + self.assertTrue( + resp.status_code in [requests.codes.ok, requests.codes.found]) diff --git a/software/slapos-sr-testing/software.cfg b/software/slapos-sr-testing/software.cfg index 84288c102b..91e3daa947 100644 --- a/software/slapos-sr-testing/software.cfg +++ b/software/slapos-sr-testing/software.cfg @@ -148,6 +148,11 @@ setup = ${slapos-repository:location}/software/cloudooo/test/ egg = slapos.test.dream setup = ${slapos-repository:location}/software/dream/test/ +[slapos.test.repman-setup] +<= setup-develop-egg +egg = slapos.test.repman +setup = ${slapos-repository:location}/software/repman/test/ + [slapos.core-repository] <= git-clone-repository repository = https://lab.nexedi.com/nexedi/slapos.core.git @@ -193,6 +198,7 @@ eggs = ${slapos.test.cloudooo-setup:egg} ${slapos.test.dream-setup:egg} ${slapos.test.metabase-setup:egg} + ${slapos.test.repman-setup:egg} ${backports.lzma:egg} entry-points = runTestSuite=erp5.util.testsuite:runTestSuite @@ -259,6 +265,7 @@ extra = ${slapos.test.gitlab-setup:setup} ${slapos.test.cloudooo-setup:setup} ${slapos.test.dream-setup:setup} + ${slapos.test.repman-setup:setup} [versions] # slapos.core is used from the clone always -- 2.30.9