Exemple #1
0
    def test_reading_data_from_slow_stream(self):
        slow_stream = SlowStream([
            b"\x01\x00\x00\x00\x00\x00\x00\x03f",
            b"oo",
            b"\x01\x00\x00\x00\x00\x00\x00\x01d",
        ])

        demuxer = io.Demuxer(slow_stream)
        expect(demuxer.read(32)).to(equal(b'foo'))
        expect(demuxer.read(32)).to(equal(b'd'))
Exemple #2
0
 def sockets(self):
     """
     Return a single socket which is processing all I/O to exec
     """
     socket = self.client.api.exec_start(self.exec_id, socket=True, tty=self.interactive)
     stream = io.Stream(socket)
     if self.is_process_tty():
         return stream
     else:
         return io.Demuxer(stream)
Exemple #3
0
    def test_reading_size_from_slow_stream(self):
        slow_stream = SlowStream([
            b'\x01\x00\x00\x00',
            b'\x00\x00\x00\x03foo',
            b'\x01\x00',
            b'\x00\x00\x00\x00\x00\x01d',
        ])

        demuxer = io.Demuxer(slow_stream)
        expect(demuxer.read(32)).to(equal(b'foo'))
        expect(demuxer.read(32)).to(equal(b'd'))
Exemple #4
0
        def attach_socket(key):
            if info['Config']['Attach{0}'.format(key.capitalize())]:
                socket = self.client.api.attach_socket(
                    self.container.name,
                    {key: 1, 'stream': 1, 'logs': self.logs},
                )
                stream = io.Stream(socket)

                if info['Config']['Tty']:
                    return stream
                else:
                    return io.Demuxer(stream)
            else:
                return None
Exemple #5
0
 def test_repr(self):
     s = StringIO()
     demuxer = io.Demuxer(s)
     expect(repr(demuxer)).to(equal("Demuxer(%s)" % s))
Exemple #6
0
 def test_write_delegates_to_stream(self):
     s = StringIO()
     demuxer = io.Demuxer(s)
     demuxer.write(u'test')
     expect(s.getvalue()).to(equal('test'))
Exemple #7
0
 def test_reading_overlapping_chunks(self):
     demuxer = io.Demuxer(self.create_fixture())
     expect(demuxer.read(2)).to(equal(b'fo'))
     expect(demuxer.read(2)).to(equal(b'o'))
     expect(demuxer.read(2)).to(equal(b'd'))
Exemple #8
0
 def test_reading_partial_chunk(self):
     demuxer = io.Demuxer(self.create_fixture())
     expect(demuxer.read(2)).to(equal(b'fo'))
Exemple #9
0
 def test_reading_multiple_chunks(self):
     demuxer = io.Demuxer(self.create_fixture())
     expect(demuxer.read(32)).to(equal(b'foo'))
     expect(demuxer.read(32)).to(equal(b'd'))
Exemple #10
0
 def test_fileno_delegates_to_stream(self):
     demuxer = io.Demuxer(sys.stdout)
     expect(demuxer.fileno()).to(equal(sys.stdout.fileno()))
Exemple #11
0
 def test_reading_single_chunk(self):
     demuxer = io.Demuxer(self.create_fixture())
     expect(demuxer.read(32)).to.equal('foo')