bpo-32568: make select.epoll() and its docs consistent (#7840) · python/cpython@0cdf5f4

@@ -74,11 +74,11 @@ def test_create(self):

7474

ep.close()

7575

self.assertTrue(ep.closed)

7676

self.assertRaises(ValueError, ep.fileno)

77+7778

if hasattr(select, "EPOLL_CLOEXEC"):

78-

select.epoll(select.EPOLL_CLOEXEC).close()

79+

select.epoll(-1, select.EPOLL_CLOEXEC).close()

7980

select.epoll(flags=select.EPOLL_CLOEXEC).close()

8081

select.epoll(flags=0).close()

81-

self.assertRaises(OSError, select.epoll, flags=12356)

82828383

def test_badcreate(self):

8484

self.assertRaises(TypeError, select.epoll, 1, 2, 3)

@@ -88,6 +88,13 @@ def test_badcreate(self):

8888

self.assertRaises(TypeError, select.epoll, ['foo'])

8989

self.assertRaises(TypeError, select.epoll, {})

909091+

self.assertRaises(ValueError, select.epoll, 0)

92+

self.assertRaises(ValueError, select.epoll, -2)

93+

self.assertRaises(ValueError, select.epoll, sizehint=-2)

94+95+

if hasattr(select, "EPOLL_CLOEXEC"):

96+

self.assertRaises(OSError, select.epoll, flags=12356)

97+9198

def test_context_manager(self):

9299

with select.epoll(16) as ep:

93100

self.assertGreater(ep.fileno(), 0)

@@ -117,19 +124,19 @@ def test_add(self):

117124

try:

118125

# TypeError: argument must be an int, or have a fileno() method.

119126

self.assertRaises(TypeError, ep.register, object(),

120-

select.EPOLLIN | select.EPOLLOUT)

127+

select.EPOLLIN | select.EPOLLOUT)

121128

self.assertRaises(TypeError, ep.register, None,

122-

select.EPOLLIN | select.EPOLLOUT)

129+

select.EPOLLIN | select.EPOLLOUT)

123130

# ValueError: file descriptor cannot be a negative integer (-1)

124131

self.assertRaises(ValueError, ep.register, -1,

125-

select.EPOLLIN | select.EPOLLOUT)

132+

select.EPOLLIN | select.EPOLLOUT)

126133

# OSError: [Errno 9] Bad file descriptor

127134

self.assertRaises(OSError, ep.register, 10000,

128-

select.EPOLLIN | select.EPOLLOUT)

135+

select.EPOLLIN | select.EPOLLOUT)

129136

# registering twice also raises an exception

130137

ep.register(server, select.EPOLLIN | select.EPOLLOUT)

131138

self.assertRaises(OSError, ep.register, server,

132-

select.EPOLLIN | select.EPOLLOUT)

139+

select.EPOLLIN | select.EPOLLOUT)

133140

finally:

134141

ep.close()

135142

@@ -160,9 +167,9 @@ def test_control_and_wait(self):

160167161168

ep = select.epoll(16)

162169

ep.register(server.fileno(),

163-

select.EPOLLIN | select.EPOLLOUT | select.EPOLLET)

170+

select.EPOLLIN | select.EPOLLOUT | select.EPOLLET)

164171

ep.register(client.fileno(),

165-

select.EPOLLIN | select.EPOLLOUT | select.EPOLLET)

172+

select.EPOLLIN | select.EPOLLOUT | select.EPOLLET)

166173167174

now = time.monotonic()

168175

events = ep.poll(1, 4)