X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1d1c6de3c842a33a57b7d469fdaaaa1b873433dc..54a9d4afcc7a7800388d61a2601f2495fd265ae9:/services/dockercleaner/tests/test_cleaner.py diff --git a/services/dockercleaner/tests/test_cleaner.py b/services/dockercleaner/tests/test_cleaner.py index 43abe4f636..3cb172e1e6 100644 --- a/services/dockercleaner/tests/test_cleaner.py +++ b/services/dockercleaner/tests/test_cleaner.py @@ -315,13 +315,19 @@ class DockerContainerCleanerTestCase(DockerImageUseRecorderTestCase): TEST_CLASS = cleaner.DockerImageCleaner TEST_CLASS_INIT_KWARGS = {'remove_containers_onexit': True} + def test_container_deletion_deletes_volumes(self): + cid = MockDockerId() + self.events.append(MockEvent('die', docker_id=cid)) + self.recorder.run() + self.docker_client.remove_container.assert_called_with(cid, v=True) + @mock.patch('arvados_docker.cleaner.logger') def test_failed_container_deletion_handling(self, mockLogger): cid = MockDockerId() self.docker_client.remove_container.side_effect = MockException(500) self.events.append(MockEvent('die', docker_id=cid)) self.recorder.run() - self.docker_client.remove_container.assert_called_with(cid) + self.docker_client.remove_container.assert_called_with(cid, v=True) self.assertEqual("Failed to remove container %s: %s", mockLogger.warning.call_args[0][0]) self.assertEqual(cid, @@ -374,6 +380,21 @@ class RunTestCase(unittest.TestCase): self.assertEqual(event_kwargs[0]['until'], event_kwargs[1]['since']) +@mock.patch('docker.Client', name='docker_client') +@mock.patch('arvados_docker.cleaner.run', name='cleaner_run') +class MainTestCase(unittest.TestCase): + def test_client_api_version(self, run_mock, docker_client): + cleaner.main(['--quota', '1000T']) + self.assertEqual(1, docker_client.call_count) + # 1.14 is the first version that's well defined, going back to + # Docker 1.2, and still supported up to at least Docker 1.9. + # See . + self.assertEqual('1.14', + docker_client.call_args[1].get('version')) + self.assertEqual(1, run_mock.call_count) + self.assertIs(run_mock.call_args[0][1], docker_client()) + + class ContainerRemovalTestCase(unittest.TestCase): LIFECYCLE = ['create', 'attach', 'start', 'resize', 'die', 'destroy'] @@ -398,13 +419,13 @@ class ContainerRemovalTestCase(unittest.TestCase): def test_remove_onexit(self): self.args.remove_stopped_containers = 'onexit' cleaner.run(self.args, self.docker_client) - self.docker_client.remove_container.assert_called_once_with(self.newCID) + self.docker_client.remove_container.assert_called_once_with(self.newCID, v=True) def test_remove_always(self): self.args.remove_stopped_containers = 'always' cleaner.run(self.args, self.docker_client) - self.docker_client.remove_container.assert_any_call(self.existingCID) - self.docker_client.remove_container.assert_any_call(self.newCID) + self.docker_client.remove_container.assert_any_call(self.existingCID, v=True) + self.docker_client.remove_container.assert_any_call(self.newCID, v=True) self.assertEqual(2, self.docker_client.remove_container.call_count) def test_remove_never(self): @@ -424,5 +445,5 @@ class ContainerRemovalTestCase(unittest.TestCase): mock.call.events(since=mock.ANY), mock.call.containers(filters={'status':'exited'})]) # Asked to delete the container twice? - self.docker_client.remove_container.assert_has_calls([mock.call(self.existingCID)] * 2) + self.docker_client.remove_container.assert_has_calls([mock.call(self.existingCID, v=True)] * 2) self.assertEqual(2, self.docker_client.remove_container.call_count)