def test_send_sack(self): sack = None async def mock_send_chunk(c): nonlocal sack sack = c client_transport = DummyDtlsTransport() client = RTCSctpTransport(client_transport) client._last_received_tsn = 123 client._send_chunk = mock_send_chunk run(client._send_sack()) self.assertIsNotNone(sack) self.assertEqual(sack.duplicates, []) self.assertEqual(sack.gaps, []) self.assertEqual(sack.cumulative_tsn, 123)
def test_send_sack_with_gaps(self): sack = None async def mock_send_chunk(c): nonlocal sack sack = c client_transport = DummyDtlsTransport() client = RTCSctpTransport(client_transport) client._last_received_tsn = 12 client._sack_misordered = [14, 15, 17] client._send_chunk = mock_send_chunk run(client._send_sack()) self.assertIsNotNone(sack) self.assertEqual(sack.duplicates, []) self.assertEqual(sack.gaps, [(2, 3), (5, 5)]) self.assertEqual(sack.cumulative_tsn, 12)