How to use the aioquic.quic.stream.QuicStream function in aioquic

To help you get started, we’ve selected a few aioquic examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github aiortc / aioquic / tests / test_stream.py View on Github external
def test_recv_fin_without_data(self):
        stream = QuicStream(stream_id=0)
        self.assertEqual(
            stream.add_frame(QuicStreamFrame(offset=0, data=b"", fin=True)),
            StreamDataReceived(data=b"", end_stream=True, stream_id=0),
        )
github aiortc / aioquic / tests / test_stream.py View on Github external
def test_recv_ordered(self):
        stream = QuicStream(stream_id=0)

        # add data at start
        self.assertEqual(
            stream.add_frame(QuicStreamFrame(offset=0, data=b"01234567")),
            StreamDataReceived(data=b"01234567", end_stream=False, stream_id=0),
        )
        self.assertEqual(bytes(stream._recv_buffer), b"")
        self.assertEqual(list(stream._recv_ranges), [])
        self.assertEqual(stream._recv_buffer_start, 8)

        # add more data
        self.assertEqual(
            stream.add_frame(QuicStreamFrame(offset=8, data=b"89012345")),
            StreamDataReceived(data=b"89012345", end_stream=False, stream_id=0),
        )
        self.assertEqual(bytes(stream._recv_buffer), b"")
github aiortc / aioquic / tests / test_stream.py View on Github external
def test_recv_empty(self):
        stream = QuicStream(stream_id=0)
        self.assertEqual(bytes(stream._recv_buffer), b"")
        self.assertEqual(list(stream._recv_ranges), [])
        self.assertEqual(stream._recv_buffer_start, 0)

        # empty
        self.assertEqual(stream.add_frame(QuicStreamFrame(offset=0, data=b"")), None)
        self.assertEqual(bytes(stream._recv_buffer), b"")
        self.assertEqual(list(stream._recv_ranges), [])
        self.assertEqual(stream._recv_buffer_start, 0)
github aiortc / aioquic / tests / test_stream.py View on Github external
def test_recv_fin_then_data(self):
        stream = QuicStream(stream_id=0)
        stream.add_frame(QuicStreamFrame(offset=0, data=b"", fin=True))
        with self.assertRaises(Exception) as cm:
            stream.add_frame(QuicStreamFrame(offset=0, data=b"01234567"))
        self.assertEqual(str(cm.exception), "Data received beyond FIN")
github aiortc / aioquic / tests / test_stream.py View on Github external
def test_recv_fin(self):
        stream = QuicStream(stream_id=0)

        self.assertEqual(
            stream.add_frame(QuicStreamFrame(offset=0, data=b"01234567")),
            StreamDataReceived(data=b"01234567", end_stream=False, stream_id=0),
        )
        self.assertEqual(
            stream.add_frame(QuicStreamFrame(offset=8, data=b"89012345", fin=True)),
            StreamDataReceived(data=b"89012345", end_stream=True, stream_id=0),
        )
github aiortc / aioquic / tests / test_stream.py View on Github external
def test_recv_fin_twice(self):
        stream = QuicStream(stream_id=0)
        self.assertEqual(
            stream.add_frame(QuicStreamFrame(offset=0, data=b"01234567")),
            StreamDataReceived(data=b"01234567", end_stream=False, stream_id=0),
        )
        self.assertEqual(
            stream.add_frame(QuicStreamFrame(offset=8, data=b"89012345", fin=True)),
            StreamDataReceived(data=b"89012345", end_stream=True, stream_id=0),
        )

        self.assertEqual(
            stream.add_frame(QuicStreamFrame(offset=8, data=b"89012345", fin=True)),
            StreamDataReceived(data=b"", end_stream=True, stream_id=0),
        )
github aiortc / aioquic / tests / test_stream.py View on Github external
def test_recv_offset_only(self):
        stream = QuicStream(stream_id=0)

        # add data at offset 0
        self.assertEqual(stream.add_frame(QuicStreamFrame(offset=0, data=b"")), None)
        self.assertEqual(bytes(stream._recv_buffer), b"")
        self.assertEqual(list(stream._recv_ranges), [])
        self.assertEqual(stream._recv_buffer_start, 0)

        # add data at offset 8
        self.assertEqual(stream.add_frame(QuicStreamFrame(offset=8, data=b"")), None)
        self.assertEqual(
            bytes(stream._recv_buffer), b"\x00\x00\x00\x00\x00\x00\x00\x00"
        )
        self.assertEqual(list(stream._recv_ranges), [])
        self.assertEqual(stream._recv_buffer_start, 0)
github aiortc / aioquic / tests / test_stream.py View on Github external
def test_send_fin_only_despite_blocked(self):
        stream = QuicStream()

        # nothing to send yet
        self.assertTrue(stream.send_buffer_is_empty)
        frame = stream.get_frame(8)
        self.assertIsNone(frame)

        # write EOF
        stream.write(b"", end_stream=True)
        self.assertFalse(stream.send_buffer_is_empty)
        frame = stream.get_frame(8)
        self.assertEqual(frame.data, b"")
        self.assertTrue(frame.fin)
        self.assertEqual(frame.offset, 0)

        # nothing more to send
        self.assertFalse(stream.send_buffer_is_empty)  # FIXME?
github aiortc / aioquic / tests / test_stream.py View on Github external
def test_send_blocked(self):
        stream = QuicStream()
        max_offset = 12

        # nothing to send yet
        frame = stream.get_frame(8, max_offset)
        self.assertIsNone(frame)
        self.assertEqual(list(stream._send_pending), [])
        self.assertEqual(stream.next_send_offset, 0)

        # write data, send a chunk
        stream.write(b"0123456789012345")
        frame = stream.get_frame(8)
        self.assertEqual(frame.data, b"01234567")
        self.assertFalse(frame.fin)
        self.assertEqual(frame.offset, 0)
        self.assertEqual(list(stream._send_pending), [range(8, 16)])
        self.assertEqual(stream.next_send_offset, 8)
github aiortc / aioquic / tests / test_stream.py View on Github external
def test_send_data_lost(self):
        stream = QuicStream()

        # nothing to send yet
        frame = stream.get_frame(8)
        self.assertIsNone(frame)

        # write data and EOF
        stream.write(b"0123456789012345", end_stream=True)
        self.assertEqual(list(stream._send_pending), [range(0, 16)])
        self.assertEqual(stream.next_send_offset, 0)

        # send a chunk
        self.assertEqual(
            stream.get_frame(8), QuicStreamFrame(data=b"01234567", fin=False, offset=0)
        )
        self.assertEqual(list(stream._send_pending), [range(8, 16)])
        self.assertEqual(stream.next_send_offset, 8)