test_sel.py

来自「minimal python variant for small footpri」· Python 代码 · 共 65 行

PY
65
字号
# Testing select modulefrom test_support import verboseimport selectimport os# test some known error conditionstry:    rfd, wfd, xfd = select.select(1, 2, 3)except TypeError:    passelse:    print 'expected TypeError exception not raised'class Nope:    passclass Almost:    def fileno(self):        return 'fileno'    try:    rfd, wfd, xfd = select.select([Nope()], [], [])except TypeError:    passelse:    print 'expected TypeError exception not raised'try:    rfd, wfd, xfd = select.select([Almost()], [], [])except TypeError:    passelse:    print 'expected TypeError exception not raised'def test():        import sys        if sys.platform[:3] in ('win', 'mac', 'os2'):                if verbose:                        print "Can't test select easily on", sys.platform                return        cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'        p = os.popen(cmd, 'r')        for tout in (0, 1, 2, 4, 8, 16) + (None,)*10:                if verbose:                        print 'timeout =', tout                rfd, wfd, xfd = select.select([p], [], [], tout)##              print rfd, wfd, xfd                if (rfd, wfd, xfd) == ([], [], []):                        continue                if (rfd, wfd, xfd) == ([p], [], []):                        line = p.readline()                        if verbose:                                print `line`                        if not line:                                if verbose:                                        print 'EOF'                                break                        continue                print 'Heh?'        p.close()test()

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?