forked from Rust-related/RustPython
45 lines
864 B
Python
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
|