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'))
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)
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'))
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
def test_repr(self): s = StringIO() demuxer = io.Demuxer(s) expect(repr(demuxer)).to(equal("Demuxer(%s)" % s))
def test_write_delegates_to_stream(self): s = StringIO() demuxer = io.Demuxer(s) demuxer.write(u'test') expect(s.getvalue()).to(equal('test'))
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'))
def test_reading_partial_chunk(self): demuxer = io.Demuxer(self.create_fixture()) expect(demuxer.read(2)).to(equal(b'fo'))
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'))
def test_fileno_delegates_to_stream(self): demuxer = io.Demuxer(sys.stdout) expect(demuxer.fileno()).to(equal(sys.stdout.fileno()))
def test_reading_single_chunk(self): demuxer = io.Demuxer(self.create_fixture()) expect(demuxer.read(32)).to.equal('foo')