| #!/usr/bin/env python |
| # coding=utf-8 |
| |
| # Copyright [2020] [Apache Software Foundation] |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| try: |
| import mock |
| except ImportError: |
| import unittest.mock as mock |
| |
| from marvin_python_toolbox.utils.docker import _get_client |
| from marvin_python_toolbox.utils.docker import _search_docker_image |
| from marvin_python_toolbox.utils.docker import _search_docker_container |
| from marvin_python_toolbox.utils.docker import search_engine_container |
| from marvin_python_toolbox.utils.docker import search_engine_images |
| from marvin_python_toolbox.utils.docker import create_engine_image |
| from marvin_python_toolbox.utils.docker import create_daemon_container |
| |
| @mock.patch('marvin_python_toolbox.utils.docker.DockerClient.from_env') |
| def test_get_client(env_mocked): |
| _get_client() |
| env_mocked.assert_called() |
| |
| @mock.patch('marvin_python_toolbox.utils.docker.DockerClient') |
| def test_get_client_remote(client_mocked): |
| _get_client(env=False, url='docker://mocked_url') |
| client_mocked.assert_called_with(base_url='docker://mocked_url') |
| |
| def test_search_docker_image(): |
| assert not _search_docker_image('mocked_name') |
| |
| def test_search_docker_container(): |
| assert not _search_docker_container('mocked_name') |
| |
| @mock.patch('marvin_python_toolbox.utils.docker._search_docker_container') |
| def test_search_engine_container(search_mocked): |
| search_engine_container('marvin_mocked') |
| search_mocked.assert_called_with('marvin-cont-marvin_mocked') |
| |
| @mock.patch('marvin_python_toolbox.utils.docker._search_docker_image') |
| def test_search_engine_images(search_mocked): |
| search_engine_images('marvin_mocked') |
| search_mocked.assert_called_with('marvin-marvin_mocked') |
| |
| @mock.patch('marvin_python_toolbox.utils.docker._get_client') |
| @mock.patch('marvin_python_toolbox.utils.docker.generate_engine_package') |
| def test_create_engine_image(generate_mocked, client_mocked): |
| mocked_engine_path = 'mocked/path/' |
| create_engine_image('marvin_mocked', mocked_engine_path) |
| client_mocked.assert_called() |
| generate_mocked.assert_called_with('marvin_marvin_mocked', mocked_engine_path) |
| |
| @mock.patch('marvin_python_toolbox.utils.docker._get_client') |
| def test_create_daemon_container(client_mocked): |
| create_daemon_container('marvin_mocked') |
| client_mocked.assert_called() |