def test_container_status(self, run_mock): test_output = "Up 2 minutes - localstack_main" run_mock.return_value = test_output docker_client = CmdDockerClient() status = docker_client.get_container_status("localstack_main") self.assertEqual(DockerContainerStatus.UP, status) run_mock.return_value = "Exited (0) 1 minute ago - localstack_main" status = docker_client.get_container_status("localstack_main") self.assertEqual(DockerContainerStatus.DOWN, status) run_mock.return_value = "STATUS NAME" status = docker_client.get_container_status("localstack_main") self.assertEqual(DockerContainerStatus.NON_EXISTENT, status)
def test_list_containers(self, run_mock): test_container = { "id": "00000000a1", "image": "localstack/localstack", "name": "localstack_main", "labels": "authors=LocalStack Contributors", "status": "running", } run_mock.return_value = json.dumps(test_container) docker_client = CmdDockerClient() container_list = docker_client.list_containers() call_arguments = run_mock.call_args[0][0] LOG.info("Intercepted call arguments: %s", call_arguments) self.assertEqual(test_container, container_list[0]) self.assertTrue(list_in(self._docker_cmd() + ["ps"], call_arguments)) self.assertIn("-a", call_arguments) self.assertIn("--format", call_arguments)
def _check_skip(): if not is_env_not_false("SKIP_DOCKER_TESTS"): pytest.skip("SKIP_DOCKER_TESTS is set") if not CmdDockerClient().has_docker(): pytest.skip("Docker is not available")
import pytest from localstack.config import is_env_not_false from localstack.utils.docker import DOCKER_CLIENT, CmdDockerClient, SdkDockerClient def _check_skip(): if not is_env_not_false("SKIP_DOCKER_TESTS"): pytest.skip("SKIP_DOCKER_TESTS is set") if not DOCKER_CLIENT.has_docker(): pytest.skip("Docker is not available") @pytest.fixture(params=[CmdDockerClient(), SdkDockerClient()]) def docker_client(request): _check_skip( ) # this is a hack to get a global skip for all tests that require the docker client yield request.param
def docker_client(): _check_skip( ) # this is a hack to get a global skip for all tests that require the docker client client = CmdDockerClient() yield client