示例#1
0
    def test_pipe_read (self):
        # ensure that 'readline' works properly on GreenPipes when data is not
        # immediately available (fd is nonblocking, was raising EAGAIN)
        # also ensures that readline() terminates on '\n' and '\r\n'
        r, w = os.pipe()

        r = GreenPipe(r)
        w = GreenPipe(w, 'w')

        def writer ():
            sleep(.1)

            w.write('line\n')
            w.flush()

            w.write('line\r\n')
            w.flush()

        gt = spawn(writer)

        sleep(0)

        line = r.readline()
        self.assertEquals(line, 'line\n')

        line = r.readline()
        self.assertEquals(line, 'line\r\n')

        gt.wait()
示例#2
0
    def test_pipe_read(self):
        # ensure that 'readline' works properly on GreenPipes when data is not
        # immediately available (fd is nonblocking, was raising EAGAIN)
        # also ensures that readline() terminates on '\n' and '\r\n'
        r, w = os.pipe()

        r = GreenPipe(r)
        w = GreenPipe(w, 'w')

        def writer():
            sleep(.1)

            w.write('line\n')
            w.flush()

            w.write('line\r\n')
            w.flush()

        gt = spawn(writer)

        sleep(0)

        line = r.readline()
        self.assertEquals(line, 'line\n')

        line = r.readline()
        self.assertEquals(line, 'line\r\n')

        gt.wait()
示例#3
0
    def test_pipe (self):
        r, w = os.pipe()
        rf = GreenPipe(r, 'r');
        wf = GreenPipe(w, 'w', 0);

        def sender (f, content):
            for ch in content:
                sleep(0.0001)
                f.write(ch)
            f.close()

        one_line = "12345\n";
        spawn(sender, wf, one_line * 5)
        for i in xrange(5):
            line = rf.readline()
            sleep(0.01)
            self.assertEquals(line, one_line)
        self.assertEquals(rf.readline(), '')
示例#4
0
    def test_pipe(self):
        r, w = os.pipe()
        rf = GreenPipe(r, 'r')
        wf = GreenPipe(w, 'w', 0)

        def sender(f, content):
            for ch in content:
                sleep(0.0001)
                f.write(ch)
            f.close()

        one_line = "12345\n"
        spawn(sender, wf, one_line * 5)
        for i in xrange(5):
            line = rf.readline()
            sleep(0.01)
            self.assertEquals(line, one_line)
        self.assertEquals(rf.readline(), '')
示例#5
0
 def test_seek_on_buffered_pipe (self):
     f = GreenPipe(self.tempdir + "/TestFile", 'w+', 1024)
     self.assertEquals(f.tell(), 0)
     f.seek(0, 2)
     self.assertEquals(f.tell(), 0)
     f.write('1234567890')
     f.seek(0, 2)
     self.assertEquals(f.tell(), 10)
     f.seek(0)
     value = f.read(1)
     self.assertEqual(value, '1')
     self.assertEquals(f.tell(), 1)
     value = f.read(1)
     self.assertEqual(value, '2')
     self.assertEquals(f.tell(), 2)
     f.seek(0, 1)
     self.assertEqual(f.readline(), '34567890')
     f.seek(0)
     self.assertEqual(f.readline(), '1234567890')
     f.seek(0, 2)
     self.assertEqual(f.readline(), '')
示例#6
0
 def test_seek_on_buffered_pipe(self):
     f = GreenPipe(self.tempdir + "/TestFile", 'w+', 1024)
     self.assertEquals(f.tell(), 0)
     f.seek(0, 2)
     self.assertEquals(f.tell(), 0)
     f.write('1234567890')
     f.seek(0, 2)
     self.assertEquals(f.tell(), 10)
     f.seek(0)
     value = f.read(1)
     self.assertEqual(value, '1')
     self.assertEquals(f.tell(), 1)
     value = f.read(1)
     self.assertEqual(value, '2')
     self.assertEquals(f.tell(), 2)
     f.seek(0, 1)
     self.assertEqual(f.readline(), '34567890')
     f.seek(0)
     self.assertEqual(f.readline(), '1234567890')
     f.seek(0, 2)
     self.assertEqual(f.readline(), '')