def check_message_decodes(encoded, decoded): """ Ensure the message decodes to what we expect. """ event_buffer = EventStreamBuffer() event_buffer.add_data(encoded) messages = list(event_buffer) assert len(messages) == 1 assert_message_equal(messages[0], decoded)
def test_all_positive_cases(): """Test all positive cases can be decoded on the same buffer. """ event_buffer = EventStreamBuffer() # add all positive test cases to the same buffer for (encoded, _) in POSITIVE_CASES: event_buffer.add_data(encoded) # collect all of the expected messages expected_messages = [decoded for (_, decoded) in POSITIVE_CASES] # collect all of the decoded messages decoded_messages = list(event_buffer) # assert all messages match what we expect for (expected, decoded) in zip(expected_messages, decoded_messages): assert_message_equal(expected, decoded)
def test_partial_message(): """ Ensure that we can receive partial payloads. """ data = EMPTY_MESSAGE[0] event_buffer = EventStreamBuffer() # This mid point is an arbitrary break in the middle of the headers mid_point = 15 event_buffer.add_data(data[:mid_point]) messages = list(event_buffer) assert_equal(messages, []) event_buffer.add_data(data[mid_point:len(data)]) for message in event_buffer: assert_message_equal(message, EMPTY_MESSAGE[1])
async def _create_raw_event_generator(self): event_stream_buffer = EventStreamBuffer() async for chunk, _ in self._raw_stream.iter_chunks(): event_stream_buffer.add_data(chunk) for event in event_stream_buffer: yield event