From f9121b6f1b61aa2f93f76c5b13c64455725ba45f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Fri, 22 Nov 2019 00:37:36 +0100 Subject: [PATCH] theia: simple software release test --- software/theia/test/README.md | 1 + software/theia/test/setup.py | 52 +++++++++++++++++++++++++++++ software/theia/test/test.py | 62 +++++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 software/theia/test/README.md create mode 100644 software/theia/test/setup.py create mode 100644 software/theia/test/test.py diff --git a/software/theia/test/README.md b/software/theia/test/README.md new file mode 100644 index 000000000..581af7085 --- /dev/null +++ b/software/theia/test/README.md @@ -0,0 +1 @@ +Tests for Theia software release diff --git a/software/theia/test/setup.py b/software/theia/test/setup.py new file mode 100644 index 000000000..746623a1a --- /dev/null +++ b/software/theia/test/setup.py @@ -0,0 +1,52 @@ +############################################################################## +# +# 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.theia' +long_description = open("README.md").read() + +setup( + name=name, + version=version, + description="Test for SlapOS' Theia", + 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', + 'requests', + ], + zip_safe=True, + test_suite='test', +) diff --git a/software/theia/test/test.py b/software/theia/test/test.py new file mode 100644 index 000000000..afb2690d2 --- /dev/null +++ b/software/theia/test/test.py @@ -0,0 +1,62 @@ +############################################################################## +# +# 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. +# +############################################################################## + +import os +import textwrap +import logging +import tempfile +import time +from six.moves.urllib.parse import urlparse + +import requests + +from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass + + +setUpModule, SlapOSInstanceTestCase = makeModuleSetUpAndTestCaseClass( + os.path.abspath( + os.path.join(os.path.dirname(__file__), '..', 'software.cfg'))) + + +class TestTheia(SlapOSInstanceTestCase): + def setUp(self): + self.theia_url = self.computer_partition.getConnectionParameterDict( + )['url'] + + def test_http_get(self): + resp = requests.get(self.theia_url, verify=False) + self.assertEqual(requests.codes.ok, resp.status_code) + + # without login/password, this is unauthorized + parsed_url = urlparse(self.theia_url) + resp = requests.get( + parsed_url._replace( + netloc='[{}]:{}'.format( + parsed_url.hostname, + parsed_url.port)).geturl(), + verify=False) + self.assertEqual(requests.codes.unauthorized, resp.status_code) -- 2.30.9