From 13f30606802e7d92fac68b0f9ca1a9eaac74a58c Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Nov 09 2016 21:17:35 +0000 Subject: Update unit tests that will skip docker related tests if docker isn't available. - Drop docker BuildRequires. Fixes bug #1392918 --- diff --git a/ansible-2.2.0.0-avoid-docker-dep.patch b/ansible-2.2.0.0-avoid-docker-dep.patch new file mode 100644 index 0000000..320842f --- /dev/null +++ b/ansible-2.2.0.0-avoid-docker-dep.patch @@ -0,0 +1,41 @@ +commit b482cdcf036e372ecde744e7e4f06610344bdc55 +Author: Matt Clay +Date: Wed Nov 9 10:03:05 2016 -0800 + + Fix docker connection unit tests. + + - Use assertRaisesRegexp to make sure correct exceptions are raised. + - Set docker_command to avoid docker dependency (skips find_executable). + - Use a fake path for docker_command to make sure mock.patch is working. + + (cherry picked from commit 8552ad6bf19b7b04d57c8fa7770202cb151509af) + +diff --git a/test/units/plugins/connections/test_connection.py b/test/units/plugins/connections/test_connection.py +index c34fce1..88cda0e 100644 +--- a/test/units/plugins/connections/test_connection.py ++++ b/test/units/plugins/connections/test_connection.py +@@ -109,18 +109,21 @@ class TestConnectionBaseClass(unittest.TestCase): + @mock.patch('ansible.plugins.connection.docker.Connection._old_docker_version', return_value=('false', 'garbage', '', 1)) + @mock.patch('ansible.plugins.connection.docker.Connection._new_docker_version', return_value=('docker version', '1.2.3', '', 0)) + def test_docker_connection_module_too_old(self, mock_new_docker_verison, mock_old_docker_version): +- self.assertRaises(AnsibleError, DockerConnection, self.play_context, self.in_stream) ++ self.assertRaisesRegexp(AnsibleError, '^docker connection type requires docker 1.3 or higher$', ++ DockerConnection, self.play_context, self.in_stream, docker_command='/fake/docker') + + @mock.patch('ansible.plugins.connection.docker.Connection._old_docker_version', return_value=('false', 'garbage', '', 1)) + @mock.patch('ansible.plugins.connection.docker.Connection._new_docker_version', return_value=('docker version', '1.3.4', '', 0)) + def test_docker_connection_module(self, mock_new_docker_verison, mock_old_docker_version): +- self.assertIsInstance(DockerConnection(self.play_context, self.in_stream), DockerConnection) ++ self.assertIsInstance(DockerConnection(self.play_context, self.in_stream, docker_command='/fake/docker'), ++ DockerConnection) + + # old version and new version fail + @mock.patch('ansible.plugins.connection.docker.Connection._old_docker_version', return_value=('false', 'garbage', '', 1)) + @mock.patch('ansible.plugins.connection.docker.Connection._new_docker_version', return_value=('false', 'garbage', '', 1)) + def test_docker_connection_module_wrong_cmd(self, mock_new_docker_version, mock_old_docker_version): +- self.assertRaises(AnsibleError, DockerConnection, self.play_context, self.in_stream) ++ self.assertRaisesRegexp(AnsibleError, '^Docker version check (.*?) failed: ', ++ DockerConnection, self.play_context, self.in_stream, docker_command='/fake/docker') + + # def test_winrm_connection_module(self): + # self.assertIsInstance(WinRmConnection(), WinRmConnection) diff --git a/ansible.spec b/ansible.spec index cb28a4e..5b1e117 100644 --- a/ansible.spec +++ b/ansible.spec @@ -14,7 +14,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Name: ansible Summary: SSH-based configuration management, deployment, and task execution system Version: 2.2.0.0 -Release: 3%{?dist} +Release: 4%{?dist} Group: Development/Libraries License: GPLv3+ @@ -47,6 +47,12 @@ Patch1: https://patch-diff.githubusercontent.com/raw/ansible/ansible/pull/18296. # 18bb736cc26fb6b40da25da4349ae900ed9b489b Patch2: ansible-2.2.0-dnf-groups.patch +# fix unit tests to skip tests for docker if docker is not available. +# Already upsreamed +# b482cdcf036e372ecde744e7e4f06610344bdc55 +# 8552ad6bf19b7b04d57c8fa7770202cb151509af +Patch3: ansible-2.2.0.0-avoid-docker-dep.patch + # Patch to utilize a newer jinja2 package on epel6 # Non-upstreamable as it creates a dependency on a specific version of jinja. # This is desirable for us as we have packages for that version but not for @@ -84,7 +90,6 @@ BuildRequires: python-coverage BuildRequires: python-mock BuildRequires: python-boto3 BuildRequires: python-botocore -BuildRequires: docker BuildRequires: python-passlib %endif @@ -161,6 +166,7 @@ are transferred to managed machines automatically. # Unittests tar -xJvf %{SOURCE1} +%patch3 -p1 %build %{__python2} setup.py build @@ -194,6 +200,10 @@ rm -rf $RPM_BUILD_ROOT %doc %{_mandir}/man1/ansible* %changelog +* Wed Nov 09 2016 Kevin Fenzi - 2.2.0.0-3 +- Update unit tests that will skip docker related tests if docker isn't available. +- Drop docker BuildRequires. Fixes bug #1392918 + * Fri Nov 4 2016 Toshio Kuratomi - - 2.2.0.0-3 - Fix for dnf group install