def test_exec_error_in_container(self, docker_client: DockerClient, dummy_container): docker_client.start_container(dummy_container.container_id) with pytest.raises(ContainerException) as ex: docker_client.exec_in_container( dummy_container.container_id, command=["./doesnotexist"] ) assert ex.match("doesnotexist: no such file or directory")
def test_exec_in_container_not_running_raises_exception( self, docker_client: DockerClient, dummy_container ): with pytest.raises(ContainerException) as ex: # can't exec into a non-running container docker_client.exec_in_container( dummy_container.container_id, command=["echo", "foobar"] ) assert ex.match("not running")
def test_exec_in_container(self, docker_client: DockerClient, dummy_container: ContainerInfo): docker_client.start_container(dummy_container.container_id) output, _ = docker_client.exec_in_container( dummy_container.container_id, command=["echo", "foobar"] ) output = output.decode(config.DEFAULT_ENCODING) assert "foobar" == output.strip()
def test_exec_in_container_with_env(self, docker_client: DockerClient, dummy_container): docker_client.start_container(dummy_container.container_id) env = [("MYVAR", "foo_var")] output, _ = docker_client.exec_in_container( dummy_container.container_id, env_vars=env, command=["env"] ) output = output.decode(config.DEFAULT_ENCODING) assert "MYVAR=foo_var" in output
def test_exec_in_container_with_stdin(self, docker_client: DockerClient, dummy_container): docker_client.start_container(dummy_container.container_id) message = "test_message_stdin" output, _ = docker_client.exec_in_container( dummy_container.container_id, interactive=True, stdin=message.encode(config.DEFAULT_ENCODING), command=["cat"], ) assert message == output.decode(config.DEFAULT_ENCODING).strip()