Esempio n. 1
0
def test_exception_waiter(loop, lines_parser):
    stream = parsers.StreamParser(loop=loop)

    stream._parser = lines_parser
    buf = stream._output = parsers.FlowControlDataQueue(stream, loop=loop)

    exc = ValueError()
    stream.set_exception(exc)
    assert buf.exception() is exc
Esempio n. 2
0
    def test_exception_waiter(self):
        stream = parsers.StreamParser(loop=self.loop)

        stream._parser = self.lines_parser
        buf = stream._output = parsers.FlowControlDataQueue(
            stream, loop=self.loop)

        exc = ValueError()
        stream.set_exception(exc)
        self.assertIs(buf.exception(), exc)
Esempio n. 3
0
def test_chunks_parser(stream, loop, buf):
    out = parsers.FlowControlDataQueue(stream, loop=loop)

    p = parsers.ChunksParser(5)(out, buf)
    next(p)
    for d in (b'line1', b'lin', b'e2d', b'ata'):
        p.send(d)

    assert ([(bytearray(b'line1'), 5),
             (bytearray(b'line2'), 5)] == list(out._buffer))
    try:
        p.throw(parsers.EofStream())
    except StopIteration:
        pass

    assert bytes(buf) == b'data'
Esempio n. 4
0
def test_lines_parser(buf, stream, loop):
    out = parsers.FlowControlDataQueue(stream, loop=loop)

    p = parsers.LinesParser()(out, buf)
    next(p)
    for d in (b'line1', b'\r\n', b'lin', b'e2\r', b'\ndata'):
        p.send(d)

    assert ([(bytearray(b'line1\r\n'), 7),
             (bytearray(b'line2\r\n'), 7)] == list(out._buffer))
    try:
        p.throw(parsers.EofStream())
    except StopIteration:
        pass

    assert bytes(buf) == b'data'
Esempio n. 5
0
    def test_chunks_parser(self):
        out = parsers.FlowControlDataQueue(self.stream, loop=self.loop)
        buf = self._make_one()

        p = parsers.ChunksParser(5)(out, buf)
        next(p)
        for d in (b'line1', b'lin', b'e2d', b'ata'):
            p.send(d)

        self.assertEqual(
            [bytearray(b'line1'), bytearray(b'line2')], list(out._buffer))
        try:
            p.throw(parsers.EofStream())
        except StopIteration:
            pass

        self.assertEqual(bytes(buf), b'data')
Esempio n. 6
0
    def test_lines_parser(self):
        out = parsers.FlowControlDataQueue(self.stream, loop=self.loop)
        buf = self._make_one()

        p = parsers.LinesParser()(out, buf)
        next(p)
        for d in (b'line1', b'\r\n', b'lin', b'e2\r', b'\ndata'):
            p.send(d)

        self.assertEqual(
            [(bytearray(b'line1\r\n'), 7), (bytearray(b'line2\r\n'), 7)],
            list(out._buffer))
        try:
            p.throw(parsers.EofStream())
        except StopIteration:
            pass

        self.assertEqual(bytes(buf), b'data')