From 2a6d87b3971186b8f8657875426b537467a3f403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Mon, 5 Nov 2018 00:20:37 +0100 Subject: [PATCH] plantuml: test for software release --- software/plantuml/test/README.md | 1 + .../plantuml/test/data/test_ascii_art.txt | 11 + .../plantuml/test/data/test_class_diagram.png | Bin 0 -> 6737 bytes software/plantuml/test/data/test_fonts.png | Bin 0 -> 98899 bytes .../test/data/test_sequence_diagram.png | Bin 0 -> 3829 bytes software/plantuml/test/setup.py | 55 +++ software/plantuml/test/test.py | 188 ++++++++++ software/plantuml/test/utils.py | 321 ++++++++++++++++++ 8 files changed, 576 insertions(+) create mode 100644 software/plantuml/test/README.md create mode 100644 software/plantuml/test/data/test_ascii_art.txt create mode 100644 software/plantuml/test/data/test_class_diagram.png create mode 100644 software/plantuml/test/data/test_fonts.png create mode 100644 software/plantuml/test/data/test_sequence_diagram.png create mode 100644 software/plantuml/test/setup.py create mode 100644 software/plantuml/test/test.py create mode 100644 software/plantuml/test/utils.py diff --git a/software/plantuml/test/README.md b/software/plantuml/test/README.md new file mode 100644 index 000000000..a8045b99f --- /dev/null +++ b/software/plantuml/test/README.md @@ -0,0 +1 @@ +Tests for PlantUML software release diff --git a/software/plantuml/test/data/test_ascii_art.txt b/software/plantuml/test/data/test_ascii_art.txt new file mode 100644 index 000000000..f6d896b5c --- /dev/null +++ b/software/plantuml/test/data/test_ascii_art.txt @@ -0,0 +1,11 @@ + ┌───┠┌─────┠+ │Bob│ │Alice│ + └─┬─┘ └──┬──┘ + │ hello │ + │──────────────>│ + │ │ + │ Go Away │ + │<──────────────│ + ┌─┴─┠┌──┴──┠+ │Bob│ │Alice│ + └───┘ └─────┘ diff --git a/software/plantuml/test/data/test_class_diagram.png b/software/plantuml/test/data/test_class_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..2a3c6d3d17a89914cd44fce81d7b6532e40e3591 GIT binary patch literal 6737 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 F{TI`0yGsB7 literal 0 HcmV?d00001 diff --git a/software/plantuml/test/data/test_fonts.png b/software/plantuml/test/data/test_fonts.png new file mode 100644 index 0000000000000000000000000000000000000000..16ac44163916f06235ca7e4b28c4320ce3f40374 GIT binary patch literal 98899 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 Z5c%Xv|6sFW7XHF1b!Ba(cM5kx{tqhr<&XdX literal 0 HcmV?d00001 diff --git a/software/plantuml/test/data/test_sequence_diagram.png b/software/plantuml/test/data/test_sequence_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c7eea1455e33dce075dc2eaa281a1f971f813e GIT binary patch literal 3829 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 literal 0 HcmV?d00001 diff --git a/software/plantuml/test/setup.py b/software/plantuml/test/setup.py new file mode 100644 index 000000000..25925a9a6 --- /dev/null +++ b/software/plantuml/test/setup.py @@ -0,0 +1,55 @@ +############################################################################## +# +# 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 +import glob +import os + +version = '0.0.1.dev0' +name = 'slapos.test.plantuml' +long_description = open("README.md").read() + +setup(name=name, + version=version, + description="Test for SlapOS' PlantUML", + 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', + 'psutil', + 'plantuml', + 'requests' + ], + zip_safe=True, + test_suite='test', + ) diff --git a/software/plantuml/test/test.py b/software/plantuml/test/test.py new file mode 100644 index 000000000..f003abeb9 --- /dev/null +++ b/software/plantuml/test/test.py @@ -0,0 +1,188 @@ +############################################################################## +# coding: utf-8 +# +# 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 textwrap +import hashlib +from io import BytesIO + +from PIL import Image +import requests +import plantuml + +import utils + +# for development: debugging logs and install Ctrl+C handler +if os.environ.get('DEBUG'): + import logging + logging.basicConfig(level=logging.DEBUG) + import unittest + unittest.installHandler() + + +class PlantUMLTestCase(utils.SlapOSInstanceTestCase): + @classmethod + def getSoftwareURLList(cls): + return (os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'software.cfg')), ) + + +class TestSimpleDiagram(PlantUMLTestCase): + def setUp(self): + self.url = self.computer_partition.getConnectionParameterDict()["url"] + self.plantuml = plantuml.PlantUML( + url='{}/png/'.format(self.url), + http_opts={"disable_ssl_certificate_validation": True} + ) + + def assertImagesSimilar(self, i1, i2, tolerance=5): + """Assert images difference between images is less than `tolerance` %. + taken from https://rosettacode.org/wiki/Percentage_difference_between_images + """ + pairs = zip(i1.getdata(), i2.getdata()) + if len(i1.getbands()) == 1: + # for gray-scale jpegs + dif = sum(abs(p1-p2) for p1,p2 in pairs) + else: + dif = sum(abs(c1-c2) for p1,p2 in pairs for c1,c2 in zip(p1,p2)) + + ncomponents = i1.size[0] * i1.size[1] * 3 + self.assertLessEqual((dif / 255.0 * 100) / ncomponents, tolerance) + + def assertImagesSame(self, i1, i2): + """Assert images are exactly same.""" + self.assertImagesSimilar(i1, i2, 0) + + def test_sequence_diagram(self): + png = self.plantuml.processes(textwrap.dedent("""\ + @startuml + Bob -> Alice : hello + Alice -> Bob : Go Away + @enduml + """)) + # we cannot just compare the hash of the image against a reference that can be found with + # http://www.plantuml.com/plantuml/png/SoWkIImgAStDuNBAJrBGjLDmpCbCJbMmKiX8pSd9vuBmWC8WMIi5ztm5n_B4IYw7rBmKe1u0 + # because plantuml include information about the server in the output image metadata ( you can + # use http://exif.regex.info/exif.cgi to see metadata ) + # So we process the image to remove metadata. + reference = Image.open(os.path.join(os.path.dirname(__file__), "data", "test_sequence_diagram.png")) + self.assertImagesSame(Image.open(BytesIO(png)), reference) + + def test_class_diagram(self): + """Class diagram require a working graphviz installation""" + png = self.plantuml.processes(textwrap.dedent("""\ + @startuml + class Car + + Driver - Car : drives > + Car *- Wheel : have 4 > + Car -- Person : < owns + + @enduml + """)) + # rendering is not exactly same on class diagrams, because of fonts and maybe also something in graphviz. + # We just compare that image are similar. + + # http://www.plantuml.com/plantuml/png/SoWkIImgAStDuKhEIImkLd1EBEBYSYdAB4ijKj05yHIi5590t685EouGLqjN8JmZDJK7A9wHM9QgO08LrzLL24WjAixF0qhOAEINvnLpSJcavgK0ZGO0 + reference = Image.open(os.path.join(os.path.dirname(__file__), "data", "test_class_diagram.png")) + self.assertImagesSimilar(Image.open(BytesIO(png)), reference) + + def test_fonts(self): + """Test slapos provided fonts are used""" + png = self.plantuml.processes(textwrap.dedent("""\ + @startuml + listfonts ç§ã¯ç”³ã—訳ã‚ã‚Šã¾ã›ã‚“:ç§ã¯æ—¥æœ¬èªžã‚’話ã•ãªã„。Je ne parle pas japonais. + @enduml + """)) + # URL on the reference implementation would be + # http://www.plantuml.com/plantuml/png/SoWkIImgAStDuSh9B2v9oyyhALPulhpnSUFwvrCsFswS_c85a6nwtDJrk77VuyRPZviclzyp2wBWsVIbp-QiUR5gtkEcIIzMRdpSEFLnuwh7ZIsF6vgyKXNoKXKA4ejoG6InGbPYGNvUOcQn7fT3QbuAq3O0 + # but we don't have same fonts, so we compare against the fonts of a slapos instance. + reference = Image.open(os.path.join(os.path.dirname(__file__), "data", "test_fonts.png")) + self.assertImagesSimilar(Image.open(BytesIO(png)), reference) + + def test_editor(self): + """Test the embedded editor""" + r = requests.get('{}/uml/'.format(self.url), verify=False) + self.assertEqual(r.status_code, requests.codes.ok) + + def test_svg(self): + """Test svg rendering""" + image_key = plantuml.deflate_and_encode(textwrap.dedent("""\ + @startuml + Bob -> Alice : hello + Alice -> Bob : Go Away + @enduml + """)) + svg = requests.get('{}/svg/{}'.format(self.url, image_key), verify=False).text + self.assertIn('<?xml version="1.0" encoding="UTF-8"', svg) + + def test_ascii_art(self): + """Test ascii art rendering""" + image_key = plantuml.deflate_and_encode(textwrap.dedent("""\ + @startuml + Bob -> Alice : hello + Alice -> Bob : Go Away + @enduml + """)) + aa = requests.get('{}/txt/{}'.format(self.url, image_key), verify=False).content + with open(os.path.join(os.path.dirname(__file__), "data", "test_ascii_art.txt"), 'rb') as reference: + self.assertEqual(aa, reference.read()) + + +class ServicesTestCase(PlantUMLTestCase): + @staticmethod + def generateHashFromFiles(file_list): + hasher = hashlib.md5() + for path in file_list: + with open(path, 'r') as afile: + buf = afile.read() + hasher.update("%s\n" % len(buf)) + hasher.update(buf) + hash = hasher.hexdigest() + return hash + + def test_hashes(self): + hash_files = [ + 'software_release/buildout.cfg', + 'var/tomcat/conf/server.xml' + ] + expected_process_names = [ + 'tomcat-instance-{hash}-on-watch', + ] + + supervisor = self.getSupervisorRPCServer().supervisor + process_names = [process['name'] + for process in supervisor.getAllProcessInfo()] + + hash_files = [os.path.join(self.computer_partition_root_path, path) + for path in hash_files] + + for name in expected_process_names: + h = ServicesTestCase.generateHashFromFiles(hash_files) + expected_process_name = name.format(hash=h) + + self.assertIn(expected_process_name, process_names) diff --git a/software/plantuml/test/utils.py b/software/plantuml/test/utils.py new file mode 100644 index 000000000..9590d72bf --- /dev/null +++ b/software/plantuml/test/utils.py @@ -0,0 +1,321 @@ +############################################################################## +# +# 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 unittest +import os +import socket +from contextlib import closing +import logging +import StringIO +import xmlrpclib + +import supervisor.xmlrpc +from erp5.util.testnode.SlapOSControler import SlapOSControler +from erp5.util.testnode.ProcessManager import ProcessManager + + +# Utility functions +def findFreeTCPPort(ip=''): + """Find a free TCP port to listen to. + """ + family = socket.AF_INET6 if ':' in ip else socket.AF_INET + with closing(socket.socket(family, socket.SOCK_STREAM)) as s: + s.bind((ip, 0)) + return s.getsockname()[1] + + +# TODO: +# - allow requesting multiple instances ? + +class SlapOSInstanceTestCase(unittest.TestCase): + """Install one slapos instance. + + This test case install software(s) and request one instance during `setUpClass` + and destroy the instance during `tearDownClass`. + + Software Release URL, Instance Software Type and Instance Parameters can be defined + on the class. + + All tests from the test class will run with the same instance. + + The following class attributes are available: + + * `computer_partition`: the `slapos.core.XXX` computer partition instance. + + * `computer_partition_root_path`: the path of the instance root directory, + + """ + + # Methods to be defined by subclasses. + @classmethod + def getSoftwareURLList(cls): + """Return URL of software releases to install. + + To be defined by subclasses. + """ + raise NotImplementedError() + + @classmethod + def getInstanceParameterDict(cls): + """Return instance parameters + + To be defined by subclasses if they need to request instance with specific + parameters. + """ + return {} + + @classmethod + def getInstanceSoftwareType(cls): + """Return software type for instance, default "default" + + To be defined by subclasses if they need to request instance with specific + software type. + """ + return "default" + + # Utility methods. + def getSupervisorRPCServer(self): + """Returns a XML-RPC connection to the supervisor used by slapos node + + Refer to http://supervisord.org/api.html for details of available methods. + """ + # xmlrpc over unix socket https://stackoverflow.com/a/11746051/7294664 + return xmlrpclib.ServerProxy( + 'http://slapos-supervisor', + transport=supervisor.xmlrpc.SupervisorTransport( + None, + None, + # XXX hardcoded socket path + serverurl="unix://{working_directory}/inst/supervisord.socket".format( + **self.config))) + + # Unittest methods + @classmethod + def setUpClass(cls): + """Setup the class, build software and request an instance. + + If you have to override this method, do not forget to call this method on + parent class. + """ + try: + cls.setUpWorkingDirectory() + cls.setUpConfig() + cls.setUpSlapOSController() + + cls.runSoftwareRelease() + # XXX instead of "runSoftwareRelease", it would be better to be closer to slapos usage: + # cls.supplySoftwares() + # cls.installSoftwares() + + cls.runComputerPartition() + # XXX instead of "runComputerPartition", it would be better to be closer to slapos usage: + # cls.requestInstances() + # cls.createInstances() + # cls.requestInstances() + + except BaseException: + cls.stopSlapOSProcesses() + cls.setUp = lambda self: self.fail('Setup Class failed.') + raise + + @classmethod + def tearDownClass(cls): + """Tear down class, stop the processes and destroy instance. + """ + cls.stopSlapOSProcesses() + + # Implementation + @classmethod + def stopSlapOSProcesses(cls): + if hasattr(cls, '_process_manager'): + cls._process_manager.killPreviousRun() + + @classmethod + def setUpWorkingDirectory(cls): + """Initialise the directories""" + cls.working_directory = os.environ.get( + 'SLAPOS_TEST_WORKING_DIR', + os.path.join(os.path.dirname(__file__), '.slapos')) + # To prevent error: Cannot open an HTTP server: socket.error reported + # AF_UNIX path too long This `working_directory` should not be too deep. + # Socket path is 108 char max on linux + # https://github.com/torvalds/linux/blob/3848ec5/net/unix/af_unix.c#L234-L238 + # Supervisord socket name contains the pid number, which is why we add + # .xxxxxxx in this check. + if len(cls.working_directory + '/inst/supervisord.socket.xxxxxxx') > 108: + raise RuntimeError('working directory ( {} ) is too deep, try setting ' + 'SLAPOS_TEST_WORKING_DIR'.format(cls.working_directory)) + + if not os.path.exists(cls.working_directory): + os.mkdir(cls.working_directory) + + @classmethod + def setUpConfig(cls): + """Create slapos configuration""" + cls.config = { + "working_directory": cls.working_directory, + "slapos_directory": cls.working_directory, + "log_directory": cls.working_directory, + "computer_id": 'slapos.test', # XXX + 'proxy_database': os.path.join(cls.working_directory, 'proxy.db'), + 'partition_reference': cls.__name__, + # "proper" slapos command must be in $PATH + 'slapos_binary': 'slapos', + } + # Some tests are expecting that local IP is not set to 127.0.0.1 + ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') + ipv6_address = os.environ['GLOBAL_IPV6'] + + cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address + cls.config['ipv6_address'] = ipv6_address + cls.config['proxy_port'] = findFreeTCPPort(ipv4_address) + cls.config['master_url'] = 'http://{proxy_host}:{proxy_port}'.format( + **cls.config) + + @classmethod + def setUpSlapOSController(cls): + """Create the a "slapos controller" and supply softwares from `getSoftwareURLList`. + + This is equivalent to: + + slapos proxy start + for sr in getSoftwareURLList; do + slapos supply $SR $COMP + done + """ + cls._process_manager = ProcessManager() + + # XXX this code is copied from testnode code + cls.slapos_controler = SlapOSControler( + cls.working_directory, + cls.config + ) + + slapproxy_log = os.path.join(cls.config['log_directory'], 'slapproxy.log') + logger = logging.getLogger(__name__) + logger.debug('Configured slapproxy log to %r', slapproxy_log) + + cls.software_url_list = cls.getSoftwareURLList() + cls.slapos_controler.initializeSlapOSControler( + slapproxy_log=slapproxy_log, + process_manager=cls._process_manager, + reset_software=False, + software_path_list=cls.software_url_list) + + # XXX we should check *earlier* if that pidfile exist and if supervisord + # process still running, because if developer started supervisord (or bugs?) + # then another supervisord will start and starting services a second time + # will fail. + cls._process_manager.supervisord_pid_file = os.path.join( + cls.slapos_controler.instance_root, 'var', 'run', 'supervisord.pid') + + @classmethod + def runSoftwareRelease(cls): + """Run all the software releases that were supplied before. + + This is the equivalent of `slapos node software`. + + The tests will be marked file if software building fail. + """ + logger = logging.getLogger() + logger.level = logging.DEBUG + stream = StringIO.StringIO() + stream_handler = logging.StreamHandler(stream) + logger.addHandler(stream_handler) + + try: + cls.software_status_dict = cls.slapos_controler.runSoftwareRelease( + cls.config, environment=os.environ) + stream.seek(0) + stream.flush() + message = ''.join(stream.readlines()[-100:]) + assert cls.software_status_dict['status_code'] == 0, message + finally: + logger.removeHandler(stream_handler) + del stream + + + @classmethod + def runComputerPartition(cls): + """Instanciate the software. + + This is the equivalent of doing: + + slapos request --type=getInstanceSoftwareType --parameters=getInstanceParameterDict + slapos node instance + + and return the slapos request instance parameters. + + This can be called by tests to simulate re-request with different parameters. + """ + logger = logging.getLogger() + logger.level = logging.DEBUG + stream = StringIO.StringIO() + stream_handler = logging.StreamHandler(stream) + logger.addHandler(stream_handler) + + if cls.getInstanceSoftwareType() != 'default': + raise NotImplementedError + + instance_parameter_dict = cls.getInstanceParameterDict() + try: + cls.instance_status_dict = cls.slapos_controler.runComputerPartition( + cls.config, + cluster_configuration=instance_parameter_dict, + environment=os.environ) + stream.seek(0) + stream.flush() + message = ''.join(stream.readlines()[-100:]) + assert cls.instance_status_dict['status_code'] == 0, message + finally: + logger.removeHandler(stream_handler) + del stream + + # FIXME: similar to test node, only one (root) partition is really + # supported for now. + computer_partition_list = [] + for i in range(len(cls.software_url_list)): + computer_partition_list.append( + cls.slapos_controler.slap.registerOpenOrder().request( + cls.software_url_list[i], + # This is how testnode's SlapOSControler name created partitions + partition_reference='testing partition {i}'.format( + i=i, **cls.config), + partition_parameter_kw=instance_parameter_dict)) + + # expose some class attributes so that tests can use them: + # the ComputerPartition instances, to getInstanceParameterDict + cls.computer_partition = computer_partition_list[0] + + # the path of the instance on the filesystem, for low level inspection + cls.computer_partition_root_path = os.path.join( + cls.config['working_directory'], + 'inst', + cls.computer_partition.getId()) + + + -- 2.30.9