Beispiel #1
0
    def setup_class(cls):
        from pypy.module._file.interp_file import W_File

        cls.old_read = os.read

        if cls.runappdirect:
            py.test.skip("works with internals of _file impl on py.py")
        state = [0]

        def read(fd, n=None):
            if fd != 424242:
                return cls.old_read(fd, n)
            if state[0] == 0:
                state[0] += 1
                return "xyz"
            if state[0] < 3:
                state[0] += 1
                raise OSError(errno.EAGAIN, "xyz")
            return ''

        os.read = read
        stdin = W_File(cls.space)
        stdin.file_fdopen(424242, 'rb', 1)
        stdin.name = '<stdin>'
        cls.w_stream = stdin
Beispiel #2
0
    def setup_class(cls):
        from pypy.module._file.interp_file import W_File

        cls.old_read = os.read

        if option.runappdirect:
            py.test.skip("works with internals of _file impl on py.py")
        import platform
        if platform.system() == 'Windows':
            # XXX This test crashes until someone implements something like
            # XXX verify_fd from
            # XXX http://hg.python.org/cpython/file/80ddbd822227/Modules/posixmodule.c#l434
            # XXX and adds it to fopen
            assert False

        state = [0]
        def read(fd, n=None):
            if fd != 42:
                return cls.old_read(fd, n)
            if state[0] == 0:
                state[0] += 1
                return "xyz"
            if state[0] < 3:
                state[0] += 1
                raise OSError(errno.EAGAIN, "xyz")
            return ''
        os.read = read
        stdin = W_File(cls.space)
        stdin.file_fdopen(42, "r", 1)
        stdin.name = '<stdin>'
        cls.w_stream = stdin
Beispiel #3
0
    def __init__(self, space):
        from pypy.module._file.interp_file import W_File
        self.space = space

        stdin = W_File(space)
        stdin.file_fdopen(0, "r", 1)
        stdin.name = '<stdin>'
        self.w_stdin = space.wrap(stdin)

        stdout = W_File(space)
        stdout.file_fdopen(1, "w", 1)
        stdout.name = '<stdout>'
        self.w_stdout = space.wrap(stdout)

        stderr = W_File(space)
        stderr.file_fdopen(2, "w", 0)
        stderr.name = '<stderr>'
        self.w_stderr = space.wrap(stderr)
Beispiel #4
0
    def __init__(self, space):
        from pypy.module._file.interp_file import W_File
        self.space = space

        stdin = W_File(space)
        stdin.file_fdopen(0, "r", 1)
        stdin.name = '<stdin>'
        self.w_stdin = space.wrap(stdin)

        stdout = W_File(space)
        stdout.file_fdopen(1, "w", 1)
        stdout.name = '<stdout>'
        self.w_stdout = space.wrap(stdout)

        stderr = W_File(space)
        stderr.file_fdopen(2, "w", 0)
        stderr.name = '<stderr>'
        self.w_stderr = space.wrap(stderr)
Beispiel #5
0
    def setup_class(cls):
        from pypy.module._file.interp_file import W_File

        cls.old_read = os.read

        if cls.runappdirect:
            py.test.skip("works with internals of _file impl on py.py")
        def read(fd, n=None):
            if fd != 424242:
                return cls.old_read(fd, n)
            if cls.state == 0:
                cls.state += 1
                return "xyz"
            if cls.state < 3:
                cls.state += 1
                raise OSError(errno.EAGAIN, "xyz")
            return ''
        os.read = read
        stdin = W_File(cls.space)
        stdin.file_fdopen(424242, 'rb', 1)
        stdin.name = '<stdin>'
        cls.w_stream = stdin