Files
RustPython/extra_tests/snippets/stdlib_select.py
2020-09-13 06:58:57 +09:00

45 lines
864 B
Python

from testutils import assert_raises
import select
import sys
import socket
class Nope:
pass
class Almost:
def fileno(self):
return "fileno"
assert_raises(TypeError, select.select, 1, 2, 3)
assert_raises(TypeError, select.select, [Nope()], [], [])
assert_raises(TypeError, select.select, [Almost()], [], [])
assert_raises(TypeError, select.select, [], [], [], "not a number")
assert_raises(ValueError, select.select, [], [], [], -1)
if sys.platform in ["win32", "cygwin"]:
assert_raises(OSError, select.select, [0], [], [])
recvr = socket.socket()
recvr.bind(("127.0.0.1", 9988))
recvr.listen()
recvr.settimeout(10.0)
sendr = socket.socket()
sendr.connect(("127.0.0.1", 9988))
sendr.send(b"aaaa")
rres, wres, xres = select.select([recvr], [sendr], [])
if "win" not in sys.platform:
assert recvr in rres
assert sendr in wres