52 """Test encoding and decoding of frames"""
53 encoded_frame = self.
frame.encode()
54 decoded_frame = FrameStream.decode(encoded_frame)
56 self.assertEqual(decoded_frame.stream_id, self.
stream_id)
57 self.assertEqual(decoded_frame.offset, self.
offset)
58 self.assertEqual(decoded_frame.length, self.
length)
59 self.assertFalse(decoded_frame.fin)
60 self.assertEqual(decoded_frame.data, self.
test_data)
63 """Test encoding and decoding of frames with FIN flag"""
65 decoded_frame = FrameStream.decode(encoded_frame)
67 self.assertEqual(decoded_frame.stream_id, self.
stream_id)
68 self.assertEqual(decoded_frame.offset, self.
offset)
69 self.assertEqual(decoded_frame.length, self.
length)
70 self.assertTrue(decoded_frame.fin)
71 self.assertEqual(decoded_frame.data, self.
test_data)
140 """Test length_from_attrs method with zero length"""
141 test_frame_header = bytes([0x08])
142 test_frame_header += bytes([0] * Constants.STREAM_ID_LENGTH)
144 end_attrs = FrameStream.end_of_attrs(test_frame_header)
145 length = FrameStream.length_from_attrs(test_frame_header, end_attrs)
147 self.assertEqual(length, 0)
150 """Test all combinations of offset, length, and fin flags"""
163 for offset, length, fin
in combinations:
172 encoded_frame = frame.encode()
173 decoded_frame = FrameStream.decode(encoded_frame)
175 self.assertEqual(decoded_frame.stream_id, self.
stream_id)
176 self.assertEqual(decoded_frame.offset, offset)
177 self.assertEqual(decoded_frame.length, length)
178 self.assertEqual(decoded_frame.fin, fin)
179 self.assertEqual(decoded_frame.data, self.
test_data)
182 """Test with large values for stream_id, offset, and length"""
183 large_stream_id = 2 ** 63 - 1
184 large_offset = 2 ** 63 - 1
185 large_length = 2 ** 63 - 1
188 stream_id=large_stream_id,
195 encoded_frame = frame.encode()
196 decoded_frame = FrameStream.decode(encoded_frame)
198 self.assertEqual(decoded_frame.stream_id, large_stream_id)
199 self.assertEqual(decoded_frame.offset, large_offset)
200 self.assertEqual(decoded_frame.length, large_length)
201 self.assertTrue(decoded_frame.fin)
202 self.assertEqual(decoded_frame.data, self.
test_data)