Пример #1
0
    def testStream_15(self):
        s = Stream(encoders=[str_encoder('utf-8'), gzip_encoder()])
        s2 = Stream((str is not bytes),
                    encoders=[gzip_decoder(),
                              str_decoder('utf-8')])
        retvalue = []
        rc = self.rc

        def write_routine():
            for m in s.write('abcde', rc):
                yield m
            for m in s.write('defgh', rc):
                yield m
            for m in s.write('ijklm', rc, True):
                yield m

        def read_routine():
            for m in s2.read(rc):
                yield m
            retvalue.append(rc.data)

        rc.subroutine(write_routine())
        rc.subroutine(read_routine())
        rc.subroutine(s.copyTo(s2, rc))
        self.server.serve()
        self.assertEqual(retvalue, ['abcdedefghijklm'])
Пример #2
0
    def testStream_16(self):
        s = Stream(splitsize=4)
        s2 = Stream(writebufferlimit=0)
        retvalue = []
        rc = self.rc

        def write_routine():
            rc.subroutine(s2.copyTo(s, rc, False))

            def read_next(size=None):
                data = s.readonce(size)
                while not data:
                    for m in s.prepareRead(rc):
                        yield m
                    data = s.readonce(size)
                rc.retvalue = data

            for m in s2.write(b'abcde', rc):
                yield m
            for m in s2.write(b'de\nf\rgh\r\n', rc):
                yield m
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            for m in s2.write(b'ijklm', rc, True):
                yield m
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            try:
                for m in read_next():
                    yield m
                retvalue.append(rc.retvalue)
            except EOFError:
                retvalue.append(None)

        rc.subroutine(write_routine())
        self.server.serve()
        self.assertEqual(
            retvalue,
            [b'abcd', b'e', b'de\nf', b'\rgh\r', b'\n', b'ijkl', b'm', None])
Пример #3
0
    def testStream_3(self):
        s = Stream()
        retvalue = []
        rc = self.rc

        def write_routine():
            for m in s.write(b'abcde', rc):
                yield m
            for m in s.write(b'de\nf\rgh\r\n', rc, buffering=False):
                yield m
            for m in s.readline(rc):
                yield m
            retvalue.append(rc.data)
            for m in s.readline(rc):
                yield m
            retvalue.append(rc.data)
            for m in s.write(b'ijklm', rc, True):
                yield m
            for m in s.readline(rc):
                yield m
            retvalue.append(rc.data)

        rc.subroutine(write_routine())
        self.server.serve()
        self.assertEqual(retvalue, [b'abcdede\n', b'f\rgh\r\n', b'ijklm'])
Пример #4
0
 def testStream_6(self):
     s = Stream()
     retvalue = []
     rc = self.rc
     async def write_routine():
         async def read_next():
             data = s.readonce()
             while not data:
                 await s.prepareRead(rc)
                 data = s.readonce()
             return data
         await s.write(b'abcde', rc, buffering=False)
         await s.write(b'de\nf\rgh\r\n', rc, buffering=False)
         data = await read_next()
         retvalue.append(data)
         data = await read_next()
         retvalue.append(data)
         await s.write(b'ijklm', rc, True)
         data = await read_next()
         retvalue.append(data)
         try:
             data = await read_next()
             retvalue.append(data)
         except EOFError:
             retvalue.append(None)
     rc.subroutine(write_routine())
     self.server.serve()
     self.assertEqual(retvalue, [b'abcde', b'de\nf\rgh\r\n', b'ijklm', None])
Пример #5
0
 def testStream_4(self):
     s = Stream()
     retvalue = []
     rc = self.rc
     async def write_routine():
         await s.write(b'abcde', rc)
         await s.write(b'de\nf\rgh\r\n', rc, buffering=False)
         data = await s.readline(rc, 4)
         retvalue.append(data)
         data = await s.readline(rc, 3)
         retvalue.append(data)
         data = await s.readline(rc, 4)
         retvalue.append(data)
         data = await s.readline(rc, 4)
         retvalue.append(data)
         data = await s.readline(rc, 4)
         retvalue.append(data)
         await s.write(b'ijklm', rc, True)
         data = await s.readline(rc, 4)
         retvalue.append(data)
         data = await s.readline(rc, 4)
         retvalue.append(data)
     rc.subroutine(write_routine())
     self.server.serve()
     self.assertEqual(retvalue, [b'abcd',b'ede', b'\n', b'f\rgh', b'\r\n', b'ijkl', b'm'])
Пример #6
0
 def testStream_5(self):
     s = Stream()
     retvalue = []
     rc = self.rc
     async def write_routine():
         await s.write(b'abcde', rc)
         await s.write(b'de\nf\rgh\r\n', rc, buffering=False)
         data = await s.readline(rc, 4)
         retvalue.append(data)
         data = await s.readline(rc, 3)
         retvalue.append(data)
         data = await s.read(rc, 4)
         retvalue.append(data)
         await s.write(b'ijklm', rc, True)
         data = await s.read(rc, 4)
         retvalue.append(data)
         data = await s.readline(rc, 4)
         retvalue.append(data)
         try:
             data = await s.readline(rc, 4)
             retvalue.append(data)
         except EOFError:
             retvalue.append(None)
     rc.subroutine(write_routine())
     self.server.serve()
     self.assertEqual(retvalue, [b'abcd',b'ede', b'\nf\rg', b'h\r\ni', b'jklm', None])
Пример #7
0
 def testStream_14(self):
     s = Stream(encoders=[str_encoder('utf-8'), deflate_encoder()])
     s2 = Stream((str is not bytes), encoders=[deflate_decoder(), str_decoder('utf-8')])
     retvalue = []
     rc = self.rc
     async def write_routine():
         await s.write('abcde', rc)
         await s.write('defgh', rc)
         await s.write('ijklm', rc, True)
     async def read_routine():
         data = await s2.read(rc)
         retvalue.append(data)
     rc.subroutine(write_routine())
     rc.subroutine(read_routine())
     rc.subroutine(s.copyTo(s2, rc))
     self.server.serve()
     self.assertEqual(retvalue, ['abcdedefghijklm'])
Пример #8
0
 def testStream_9(self):
     s = Stream()
     s2 = Stream()
     retvalue = []
     rc = self.rc
     async def write_routine():
         await s.write(b'abcde', rc)
         await s.write(b'defgh', rc)
         await s.write(b'ijklm', rc, True)
     async def read_routine():
         data = await s2.read(rc)
         retvalue.append(data)
     rc.subroutine(write_routine())
     rc.subroutine(read_routine())
     rc.subroutine(s.copyTo(s2, rc))
     self.server.serve()
     self.assertEqual(retvalue, [b'abcdedefghijklm'])
Пример #9
0
 def testStream_15(self):
     s = Stream(encoders=[str_encoder('utf-8'), gzip_encoder()])
     s2 = Stream((str is not bytes), encoders=[gzip_decoder(), str_decoder('utf-8')])
     retvalue = []
     rc = self.rc
     def write_routine():
         for m in s.write('abcde', rc):
             yield m
         for m in s.write('defgh', rc):
             yield m
         for m in s.write('ijklm', rc, True):
             yield m
     def read_routine():
         for m in s2.read(rc):
             yield m
         retvalue.append(rc.data)
     rc.subroutine(write_routine())
     rc.subroutine(read_routine())
     rc.subroutine(s.copyTo(s2, rc))
     self.server.serve()
     self.assertEqual(retvalue, ['abcdedefghijklm'])
Пример #10
0
 def testStream_9(self):
     s = Stream()
     s2 = Stream()
     retvalue = []
     rc = self.rc
     def write_routine():
         for m in s.write(b'abcde', rc):
             yield m
         for m in s.write(b'defgh', rc):
             yield m
         for m in s.write(b'ijklm', rc, True):
             yield m
     def read_routine():
         for m in s2.read(rc):
             yield m
         retvalue.append(rc.data)
     rc.subroutine(write_routine())
     rc.subroutine(read_routine())
     rc.subroutine(s.copyTo(s2, rc))
     self.server.serve()
     self.assertEqual(retvalue, [b'abcdedefghijklm'])
Пример #11
0
    def testStream_9(self):
        s = Stream()
        s2 = Stream()
        retvalue = []
        rc = self.rc

        def write_routine():
            for m in s.write(b'abcde', rc):
                yield m
            for m in s.write(b'defgh', rc):
                yield m
            for m in s.write(b'ijklm', rc, True):
                yield m

        def read_routine():
            for m in s2.read(rc):
                yield m
            retvalue.append(rc.data)

        rc.subroutine(write_routine())
        rc.subroutine(read_routine())
        rc.subroutine(s.copyTo(s2, rc))
        self.server.serve()
        self.assertEqual(retvalue, [b'abcdedefghijklm'])
Пример #12
0
 def testStream_2(self):
     s = Stream(True)
     retvalue = []
     rc = self.rc
     async def write_routine():
         await s.write(u'abcde', rc)
         await s.write(u'defgh', rc)
         await s.write(u'ijklm', rc, True)
     async def read_routine():
         data = await s.read(rc)
         retvalue.append(data)
     rc.subroutine(write_routine())
     rc.subroutine(read_routine())
     self.server.serve()
     self.assertEqual(retvalue, [u'abcdedefghijklm'])
Пример #13
0
 def testStream_13(self):
     s = Stream(encoders=[str_encoder('utf-8')])
     retvalue = []
     rc = self.rc
     async def write_routine():
         await s.write('abcde', rc)
         await s.write('defgh', rc)
         await s.write('ijklm', rc, True)
     async def read_routine():
         data = await s.read(rc)
         retvalue.append(data)
     rc.subroutine(write_routine())
     rc.subroutine(read_routine())
     self.server.serve()
     self.assertEqual(retvalue, [b'abcdedefghijklm'])
Пример #14
0
    def testStream_6(self):
        s = Stream()
        retvalue = []
        rc = self.rc

        def write_routine():
            def read_next():
                data = s.readonce()
                while not data:
                    for m in s.prepareRead(rc):
                        yield m
                    data = s.readonce()
                rc.retvalue = data

            for m in s.write(b'abcde', rc, buffering=False):
                yield m
            for m in s.write(b'de\nf\rgh\r\n', rc, buffering=False):
                yield m
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            for m in s.write(b'ijklm', rc, True):
                yield m
            for m in read_next():
                yield m
            retvalue.append(rc.retvalue)
            try:
                for m in read_next():
                    yield m
                retvalue.append(rc.retvalue)
            except EOFError:
                retvalue.append(None)

        rc.subroutine(write_routine())
        self.server.serve()
        self.assertEqual(retvalue,
                         [b'abcde', b'de\nf\rgh\r\n', b'ijklm', None])
Пример #15
0
    def testStream_2(self):
        s = Stream(True)
        retvalue = []
        rc = self.rc

        def write_routine():
            for m in s.write(u'abcde', rc):
                yield m
            for m in s.write(u'defgh', rc):
                yield m
            for m in s.write(u'ijklm', rc, True):
                yield m

        def read_routine():
            for m in s.read(rc):
                yield m
            retvalue.append(rc.data)

        rc.subroutine(write_routine())
        rc.subroutine(read_routine())
        self.server.serve()
        self.assertEqual(retvalue, [u'abcdedefghijklm'])
Пример #16
0
    def testStream_13(self):
        s = Stream(encoders=[str_encoder('utf-8')])
        retvalue = []
        rc = self.rc

        def write_routine():
            for m in s.write('abcde', rc):
                yield m
            for m in s.write('defgh', rc):
                yield m
            for m in s.write('ijklm', rc, True):
                yield m

        def read_routine():
            for m in s.read(rc):
                yield m
            retvalue.append(rc.data)

        rc.subroutine(write_routine())
        rc.subroutine(read_routine())
        self.server.serve()
        self.assertEqual(retvalue, [b'abcdedefghijklm'])