[root@host-172-16-36-8 examples]# cd rhscl_maria/ [root@host-172-16-36-8 rhscl_maria]# cat config.yaml document: meta-test version: 1 name: mariadb testdependencies: rpms: - nc - community-mysql default_module: docker module: docker: start: docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD={PASSWORD} container: docker.io/mariadb [root@host-172-16-36-8 rhscl_maria]# MODULE=docker mtf-env-set Setting environment for module: docker Preparing environment ... Loaded config for name: mariadb Installs test dependencies: ['nc', 'community-mysql'] [root@host-172-16-36-8 rhscl_maria]# ls config.yaml example1.py example1.pyc example1.pyo [root@host-172-16-36-8 rhscl_maria]# cat example1.py from moduleframework import module_framework from moduleframework.helpers.container_helper import ContainerHelper from moduleframework import common from avocado.utils import process from avocado import Test import time WAIT_TIME=15 class OneMachine(module_framework.ContainerAvocadoTest): """ An example of collections testing. :avocado: enable """ def testMariaDBDirExist(self): """ Run a command on a host and test if a directory exists inside a container. """ self.start() self.run("ls /var/lib/mysql") def testDefaultConfig(self): """ Test the default container defined in config.yaml starts. """ self.start() time.sleep(WAIT_TIME) command = "echo select 1 | mysql -h 127.0.0.1 -u root -p{PASSWORD}" self.assertIn("1", self.runHost(command, shell=True).stdout) def testNonDefaultStartAction(self): """ Test connection to a port different from the one in config.yaml. """ docker_start = "docker run -p 3307:3306 -e MYSQL_ROOT_PASSWORD={PASSWORD}" self.getConfig()["module"]["docker"]["start"] = docker_start self.start() time.sleep(WAIT_TIME) command = "echo select 1 | mysql -P 3307 -h 127.0.0.1 -u root -p{PASSWORD}" self.assertIn("1", self.runHost(command, shell=True).stdout) def testThisFail(self): """ Test if mysql is unable to connect to another port than defined. """ docker_start = "docker run -p 3308:3306 -e MYSQL_ROOT_PASSWORD={PASSWORD}" self.getConfig()["module"]["docker"]["start"] = docker_start self.start() time.sleep(WAIT_TIME) command = "echo select 1 | mysql -P 3307 -h 127.0.0.1 -u root -p{PASSWORD}" self.assertIn("t connect to MySQL server", \ self.runHost(command, shell=True, ignore_status=True).stderr) class OneMachineInSetup(module_framework.ContainerAvocadoTest): """ An example of collections tesing with a modified setUp() method. Only one modificaion in a class is possible. :avocado: enable """ def setUp(self): super(self.__class__,self).setUp() docker_start = "docker run -p 3307:3306 -e MYSQL_ROOT_PASSWORD={PASSWORD}" self.getConfig()["module"]["docker"]["start"] = docker_start self.start() time.sleep(WAIT_TIME) def testDefaultConfig(self): """ Test modified setUp() """ command = "echo select 1 | mysql -h 127.0.0.1 -u root -p{PASSWORD} -P 3307" self.assertIn("1", self.runHost(command, shell=True).stdout) class MultipleMachines(Test): """ Test two containers running at the same time. :avocado: enable """ def setUp(self): self.docker1 = ContainerHelper() self.docker1.setUp() self.docker2 = ContainerHelper() self.docker2.setUp() def testMultipleInstance(self): """ Start and connect to two containers running on different ports. """ self.docker1.start() docker_start = "docker run -p 3307:3306 -e MYSQL_ROOT_PASSWORD={PASSWORD}" self.docker2.config["module"]["docker"]["start"] = docker_start self.docker2.start() time.sleep(WAIT_TIME) command_one = "echo select 1 | mysql -h 127.0.0.1 -u root -p{PASSWORD}" command_two = "echo select 1 | mysql -h 127.0.0.1 -u root -p{PASSWORD} -P 3307" self.assertIn("1", process.run(command_one.format(**common.trans_dict), \ shell=True).stdout) self.assertIn("1", process.run(command_two.format(**common.trans_dict), \ shell=True).stdout) def tearDown(self): self.docker1.tearDown() self.docker2.tearDown() [root@host-172-16-36-8 rhscl_maria]# MODULE=docker mtf -l *.py JOB ID : d026b68d797862f141ba8bf3589a2d8606183a08 JOB LOG : /root/avocado/job-results/job-2017-10-26T02.19-d026b68/job.log (01/32) /usr/lib/python2.7/site-packages/moduleframework/tools/check_compose.py:ComposeTest.test_component_profile_installability: CANCEL (0.00 s) (02/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_architecture_in_env_and_label_exists: SKIP (03/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_name_in_env_and_label_exists: SKIP (04/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_maintainer_label_exists: SKIP (05/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_release_label_exists: SKIP (06/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_version_label_exists: SKIP (07/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_com_redhat_component_label_exists: SKIP (08/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_summary_label_exists: SKIP (09/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_run_or_usage_label_exists: SKIP (10/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_from_is_first_directive: SKIP (11/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_from_directive_is_valid: SKIP (12/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_chained_run_dnf_commands: SKIP (13/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_chained_run_rest_commands: SKIP (14/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerFileLinter.test_helpmd_is_present: SKIP (15/32) /usr/lib/python2.7/site-packages/moduleframework/tools/dockerlint.py:DockerLint.testLabels: CANCEL (16.05 s) (16/32) /usr/lib/python2.7/site-packages/moduleframework/tools/helpmd_lint.py:HelpMDLinter.test_helpmd_exists: SKIP (17/32) /usr/lib/python2.7/site-packages/moduleframework/tools/helpmd_lint.py:HelpMDLinter.test_helpmd_image_name: SKIP (18/32) /usr/lib/python2.7/site-packages/moduleframework/tools/helpmd_lint.py:HelpMDLinter.test_helpmd_maintainer_name: SKIP (19/32) /usr/lib/python2.7/site-packages/moduleframework/tools/helpmd_lint.py:HelpMDLinter.test_helpmd_name: SKIP (20/32) /usr/lib/python2.7/site-packages/moduleframework/tools/helpmd_lint.py:HelpMDLinter.test_helpmd_description: SKIP (21/32) /usr/lib/python2.7/site-packages/moduleframework/tools/helpmd_lint.py:HelpMDLinter.test_helpmd_usage: SKIP (22/32) /usr/lib/python2.7/site-packages/moduleframework/tools/helpmd_lint.py:HelpMDLinter.test_helpmd_environment_variables: SKIP (23/32) /usr/lib/python2.7/site-packages/moduleframework/tools/helpmd_lint.py:HelpMDLinter.test_helpmd_security_implications: SKIP (24/32) /usr/lib/python2.7/site-packages/moduleframework/tools/__init__.py:Basic.test: PASS (11.29 s) (25/32) /usr/lib/python2.7/site-packages/moduleframework/tools/modulelint.py:ModuleLintPackagesCheck.test: ERROR (11.58 s) (26/32) /usr/lib/python2.7/site-packages/moduleframework/tools/rpmvalidation.py:rpmvalidation.test: ERROR (11.42 s) (27/32) example1.py:OneMachine.testMariaDBDirExist: PASS (11.37 s) (28/32) example1.py:OneMachine.testDefaultConfig: PASS (16.97 s) (29/32) example1.py:OneMachine.testNonDefaultStartAction: PASS (16.92 s) (30/32) example1.py:OneMachine.testThisFail: PASS (17.07 s) (31/32) example1.py:MultipleMachines.testMultipleInstance: PASS (19.79 s) (32/32) example1.py:OneMachineInSetup.testDefaultConfig: PASS (17.90 s) RESULTS : PASS 7 | ERROR 2 | FAIL 0 | SKIP 21 | WARN 0 | INTERRUPT 0 | CANCEL 2 JOB TIME : 155.56 s JOB HTML : /root/avocado/job-results/job-2017-10-26T02.19-d026b68/results.html TEST: 25-/usr/lib/python2.7/site-packages/moduleframework/tools/modulelint.py:ModuleLintPackagesCheck.test ERROR: Command 'docker exec 73818656b0fc347ece4bb76e9b0d4e1bc3d3a6e5116ee024f01349b865402303 bash -c "rpm -qa --qf=\"%{name}\n\""' failed (rc=127) /root/avocado/job-results/job-2017-10-26T02.19-d026b68/test-results/25-_usr_lib_python2.7_site-packages_moduleframework_tools_modulelint.py:ModuleLintPackagesCheck.test/debug.log ------------------------- TEST: 26-/usr/lib/python2.7/site-packages/moduleframework/tools/rpmvalidation.py:rpmvalidation.test ERROR: Command 'docker exec b656bfbcb11e593e62b796e1f0d18a45acc7ba268302ec7fe9b8e10f09235d45 bash -c "rpm -qa"' failed (rc=127) /root/avocado/job-results/job-2017-10-26T02.19-d026b68/test-results/26-_usr_lib_python2.7_site-packages_moduleframework_tools_rpmvalidation.py:rpmvalidation.test/debug.log !!!!!!!!!!! WHY THERE ARE ERRORS?