def test_dataNotFullyReceived(self): """ Since the initial rule inside the grammar is not matched, the receiver shouldn't receive any byte. """ receiver = TrampolinedReceiver() trampolinedParser = TrampolinedParser(self.grammar, receiver, {}) buf = b'foobarandnotreachdelimiter' for c in iterbytes(buf): trampolinedParser.receive(c) self.assertEqual(receiver.received, [])
def test_dataFullyReceived(self): """ The receiver should receive the data according to the grammar. """ receiver = TrampolinedReceiver() trampolinedParser = TrampolinedParser(self.grammar, receiver, {}) buf = b'\r\n'.join((b'foo', b'bar', b'foo', b'bar')) for c in iterbytes(buf): trampolinedParser.receive(c) self.assertEqual(receiver.received, [b'foo', b'bar', b'foo']) trampolinedParser.receive('\r\n') self.assertEqual(receiver.received, [b'foo', b'bar', b'foo', b'bar'])