def dataReceived(self, raw_data): self.__buffer += raw_data while not self.paused and not self.raw: try: payload, self.__buffer = decode_packet(self.__buffer) except ValueError: invalid = self.__buffer self.__buffer = b'' self.invalidPacketReceived(invalid) break if payload is INCOMPLETE_PKT: break self.packetReceived(payload) else: if not self.paused: # We don't care about the content any more. Just forward the # bytes. raw_data = self.__buffer self.__buffer = b'' self.rawDataReceived(raw_data) return
def test_incomplete_data(self): self.assertEqual( (helpers.INCOMPLETE_PKT, TEST_PKT[:-1]), helpers.decode_packet(TEST_PKT[:-1]))
def test_incomplete_len(self): self.assertEqual( (helpers.INCOMPLETE_PKT, b'001'), helpers.decode_packet(b'001'))
def test_flush_with_tail(self): self.assertEqual((None, b'foo'), helpers.decode_packet(b'0000foo'))
def test_data_with_tail(self): self.assertEqual( (TEST_DATA, b'foo'), helpers.decode_packet(TEST_PKT + b'foo'))
def test_flush(self): self.assertEqual((None, b''), helpers.decode_packet(b'0000'))
def test_data(self): self.assertEqual((TEST_DATA, b''), helpers.decode_packet(TEST_PKT))
def assertKilledWith(self, message): self.assertFalse(self.transport.connected) self.assertEqual( (b'ERR ' + message + b'\n', b''), helpers.decode_packet(self.transport.value()))