Beispiel #1
0
    def test_exec_start_socket(self):
        if not helpers.exec_driver_is_native():
            pytest.skip('Exec driver not native')

        container = self.client.create_container(BUSYBOX,
                                                 'cat',
                                                 detach=True,
                                                 stdin_open=True)
        container_id = container['Id']
        self.client.start(container_id)
        self.tmp_containers.append(container_id)

        line = 'yay, interactive exec!'
        # `echo` appends CRLF, `printf` doesn't
        exec_id = self.client.exec_create(container_id, ['printf', line],
                                          tty=True)
        self.assertIn('Id', exec_id)

        socket = self.client.exec_start(exec_id, socket=True)
        self.addCleanup(socket.close)

        next_size = next_frame_size(socket)
        self.assertEqual(next_size, len(line))
        data = read_exactly(socket, next_size)
        self.assertEqual(data.decode('utf-8'), line)
    def test_run_container_reading_socket(self):
        line = 'hi there and stuff and things, words!'
        # `echo` appends CRLF, `printf` doesn't
        command = "printf '{0}'".format(line)
        container = self.client.create_container(BUSYBOX, command,
                                                 detach=True, tty=False)
        ident = container['Id']
        self.tmp_containers.append(ident)

        opts = {"stdout": 1, "stream": 1, "logs": 1}
        pty_stdout = self.client.attach_socket(ident, opts)
        self.addCleanup(pty_stdout.close)

        self.client.start(ident)

        next_size = next_frame_size(pty_stdout)
        self.assertEqual(next_size, len(line))
        data = read_exactly(pty_stdout, next_size)
        self.assertEqual(data.decode('utf-8'), line)
    def test_run_container_reading_socket(self):
        line = 'hi there and stuff and things, words!'
        # `echo` appends CRLF, `printf` doesn't
        command = "printf '{0}'".format(line)
        container = self.client.create_container(BUSYBOX, command,
                                                 detach=True, tty=False)
        ident = container['Id']
        self.tmp_containers.append(ident)

        opts = {"stdout": 1, "stream": 1, "logs": 1}
        pty_stdout = self.client.attach_socket(ident, opts)
        self.addCleanup(pty_stdout.close)

        self.client.start(ident)

        next_size = next_frame_size(pty_stdout)
        self.assertEqual(next_size, len(line))
        data = read_exactly(pty_stdout, next_size)
        self.assertEqual(data.decode('utf-8'), line)
Beispiel #4
0
    def test_exec_start_socket(self):
        container = self.client.create_container(BUSYBOX, 'cat',
                                                 detach=True, stdin_open=True)
        container_id = container['Id']
        self.client.start(container_id)
        self.tmp_containers.append(container_id)

        line = 'yay, interactive exec!'
        # `echo` appends CRLF, `printf` doesn't
        exec_id = self.client.exec_create(
            container_id, ['printf', line], tty=True)
        self.assertIn('Id', exec_id)

        socket = self.client.exec_start(exec_id, socket=True)
        self.addCleanup(socket.close)

        next_size = next_frame_size(socket)
        self.assertEqual(next_size, len(line))
        data = read_exactly(socket, next_size)
        self.assertEqual(data.decode('utf-8'), line)
Beispiel #5
0
    def test_exec_start_socket(self):
        container = self.client.create_container(BUSYBOX,
                                                 'cat',
                                                 detach=True,
                                                 stdin_open=True)
        container_id = container['Id']
        self.client.start(container_id)
        self.tmp_containers.append(container_id)

        line = 'yay, interactive exec!'
        # `echo` appends CRLF, `printf` doesn't
        exec_id = self.client.exec_create(container_id, ['printf', line],
                                          tty=True)
        assert 'Id' in exec_id

        socket = self.client.exec_start(exec_id, socket=True)
        self.addCleanup(socket.close)

        next_size = next_frame_size(socket)
        assert next_size == len(line)
        data = read_exactly(socket, next_size)
        assert data.decode('utf-8') == line