Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 19 additions & 11 deletions Lib/test/test_asyncio/test_base_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,7 @@ def run_loop():
'Exception in callback.*zero'),
exc_info=(ZeroDivisionError, MOCK_ANY, MOCK_ANY))

assert not mock_handler.called
self.assertFalse(mock_handler.called)

def test_set_exc_handler_broken(self):
def run_loop():
Expand Down Expand Up @@ -1003,22 +1003,26 @@ def __init__(self, create_future=False):
if create_future:
self.done = asyncio.get_running_loop().create_future()

def _assert_state(self, *expected):
if self.state not in expected:
raise AssertionError(f'state: {self.state!r}, expected: {expected!r}')

def connection_made(self, transport):
self.transport = transport
assert self.state == 'INITIAL', self.state
self._assert_state('INITIAL')
self.state = 'CONNECTED'
transport.write(b'GET / HTTP/1.0\r\nHost: example.com\r\n\r\n')

def data_received(self, data):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.nbytes += len(data)

def eof_received(self):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.state = 'EOF'

def connection_lost(self, exc):
assert self.state in ('CONNECTED', 'EOF'), self.state
self._assert_state('CONNECTED', 'EOF')
self.state = 'CLOSED'
if self.done:
self.done.set_result(None)
Expand All @@ -1033,20 +1037,24 @@ def __init__(self, create_future=False, loop=None):
if create_future:
self.done = loop.create_future()

def _assert_state(self, expected):
if self.state != expected:
raise AssertionError(f'state: {self.state!r}, expected: {expected!r}')

def connection_made(self, transport):
self.transport = transport
assert self.state == 'INITIAL', self.state
self._assert_state('INITIAL')
self.state = 'INITIALIZED'

def datagram_received(self, data, addr):
assert self.state == 'INITIALIZED', self.state
self._assert_state('INITIALIZED')
self.nbytes += len(data)

def error_received(self, exc):
assert self.state == 'INITIALIZED', self.state
self._assert_state('INITIALIZED')

def connection_lost(self, exc):
assert self.state == 'INITIALIZED', self.state
self._assert_state('INITIALIZED')
self.state = 'CLOSED'
if self.done:
self.done.set_result(None)
Expand Down Expand Up @@ -1395,7 +1403,7 @@ def test_create_connection_bluetooth(self, m_socket):
addr = ('00:01:02:03:04:05', 1)

def getaddrinfo(host, port, *args, **kw):
assert (host, port) == addr
self.assertEqual((host, port), addr)
return [(999, 1, 999, '', (addr, 1))]

m_socket.getaddrinfo = getaddrinfo
Expand Down Expand Up @@ -1694,7 +1702,7 @@ def test_create_datagram_endpoint_sock_unix(self):
lambda: MyDatagramProto(create_future=True, loop=self.loop),
family=socket.AF_UNIX)
transport, protocol = self.loop.run_until_complete(fut)
assert transport._sock.family == socket.AF_UNIX
self.assertEqual(transport._sock.family, socket.AF_UNIX)
transport.close()
self.loop.run_until_complete(protocol.done)
self.assertEqual('CLOSED', protocol.state)
Expand Down
60 changes: 40 additions & 20 deletions Lib/test/test_asyncio/test_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,23 +87,27 @@ def __init__(self, loop=None):
self.connected = loop.create_future()
self.done = loop.create_future()

def _assert_state(self, *expected):
if self.state not in expected:
raise AssertionError(f'state: {self.state!r}, expected: {expected!r}')

def connection_made(self, transport):
self.transport = transport
assert self.state == 'INITIAL', self.state
self._assert_state('INITIAL')
self.state = 'CONNECTED'
if self.connected:
self.connected.set_result(None)

def data_received(self, data):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.nbytes += len(data)

def eof_received(self):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.state = 'EOF'

def connection_lost(self, exc):
assert self.state in ('CONNECTED', 'EOF'), self.state
self._assert_state('CONNECTED', 'EOF')
self.state = 'CLOSED'
if self.done:
self.done.set_result(None)
Expand All @@ -124,20 +128,24 @@ def __init__(self, loop=None):
if loop is not None:
self.done = loop.create_future()

def _assert_state(self, expected):
if self.state != expected:
raise AssertionError(f'state: {self.state!r}, expected: {expected!r}')

def connection_made(self, transport):
self.transport = transport
assert self.state == 'INITIAL', self.state
self._assert_state('INITIAL')
self.state = 'INITIALIZED'

def datagram_received(self, data, addr):
assert self.state == 'INITIALIZED', self.state
self._assert_state('INITIALIZED')
self.nbytes += len(data)

def error_received(self, exc):
assert self.state == 'INITIALIZED', self.state
self._assert_state('INITIALIZED')

def connection_lost(self, exc):
assert self.state == 'INITIALIZED', self.state
self._assert_state('INITIALIZED')
self.state = 'CLOSED'
if self.done:
self.done.set_result(None)
Expand All @@ -153,23 +161,27 @@ def __init__(self, loop=None):
if loop is not None:
self.done = loop.create_future()

def _assert_state(self, expected):
if self.state != expected:
raise AssertionError(f'state: {self.state!r}, expected: {expected!r}')

def connection_made(self, transport):
self.transport = transport
assert self.state == ['INITIAL'], self.state
self._assert_state(['INITIAL'])
self.state.append('CONNECTED')

def data_received(self, data):
assert self.state == ['INITIAL', 'CONNECTED'], self.state
self._assert_state(['INITIAL', 'CONNECTED'])
self.nbytes += len(data)

def eof_received(self):
assert self.state == ['INITIAL', 'CONNECTED'], self.state
self._assert_state(['INITIAL', 'CONNECTED'])
self.state.append('EOF')

def connection_lost(self, exc):
if 'EOF' not in self.state:
self.state.append('EOF') # It is okay if EOF is missed.
assert self.state == ['INITIAL', 'CONNECTED', 'EOF'], self.state
self._assert_state(['INITIAL', 'CONNECTED', 'EOF'])
self.state.append('CLOSED')
if self.done:
self.done.set_result(None)
Expand All @@ -184,13 +196,17 @@ def __init__(self, loop=None):
if loop is not None:
self.done = loop.create_future()

def _assert_state(self, expected):
if self.state != expected:
raise AssertionError(f'state: {self.state!r}, expected: {expected!r}')

def connection_made(self, transport):
self.transport = transport
assert self.state == 'INITIAL', self.state
self._assert_state('INITIAL')
self.state = 'CONNECTED'

def connection_lost(self, exc):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.state = 'CLOSED'
if self.done:
self.done.set_result(None)
Expand All @@ -209,31 +225,35 @@ def __init__(self, loop):
self.got_data = {1: asyncio.Event(),
2: asyncio.Event()}

def _assert_state(self, expected):
if self.state != expected:
raise AssertionError(f'state: {self.state!r}, expected: {expected!r}')

def connection_made(self, transport):
self.transport = transport
assert self.state == 'INITIAL', self.state
self._assert_state('INITIAL')
self.state = 'CONNECTED'
self.connected.set_result(None)

def connection_lost(self, exc):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.state = 'CLOSED'
self.completed.set_result(None)

def pipe_data_received(self, fd, data):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.data[fd] += data
self.got_data[fd].set()

def pipe_connection_lost(self, fd, exc):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
if exc:
self.disconnects[fd].set_exception(exc)
else:
self.disconnects[fd].set_result(exc)

def process_exited(self):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.returncode = self.transport.get_returncode()


Expand Down Expand Up @@ -1283,7 +1303,7 @@ def test_create_datagram_endpoint_sock(self):
else:
break
else:
assert False, 'Can not create socket.'
self.fail('Can not create socket.')

f = self.loop.create_datagram_endpoint(
lambda: MyDatagramProto(loop=self.loop), sock=sock)
Expand Down
18 changes: 9 additions & 9 deletions Lib/test/test_asyncio/test_futures.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,30 +54,30 @@ def done(self):
or self.__exception is not None)

def result(self):
assert not self.cancelled()
self.assertFalse(self.cancelled())
if self.__exception is not None:
raise self.__exception
return self.__result

def exception(self):
assert not self.cancelled()
self.assertFalse(self.cancelled())
return self.__exception

def set_result(self, result):
assert not self.done()
assert result is not None
self.assertFalse(self.done())
self.assertIsNotNone(result)
self.__result = result

def set_exception(self, exception):
assert not self.done()
assert exception is not None
self.assertFalse(self.done())
self.assertIsNotNone(exception)
self.__exception = exception

def __iter__(self):
if not self.done():
self._asyncio_future_blocking = True
yield self
assert self.done()
self.assertTrue(self.done())
return self.result()


Expand All @@ -91,12 +91,12 @@ def setUp(self):
def test_wrap_future(self):
f = DuckFuture()
g = asyncio.wrap_future(f)
assert g is f
self.assertIs(g, f)

def test_ensure_future(self):
f = DuckFuture()
g = asyncio.ensure_future(f)
assert g is f
self.assertIs(g, f)


class BaseFutureTests:
Expand Down
12 changes: 8 additions & 4 deletions Lib/test/test_asyncio/test_sendfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,25 +36,29 @@ def __init__(self, loop=None, close_after=0):
self.data = bytearray()
self.close_after = close_after

def _assert_state(self, *expected):
if self.state not in expected:
raise AssertionError(f'state: {self.state!r}, expected: {expected!r}')

def connection_made(self, transport):
self.transport = transport
assert self.state == 'INITIAL', self.state
self._assert_state('INITIAL')
self.state = 'CONNECTED'
if self.connected:
self.connected.set_result(None)

def eof_received(self):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.state = 'EOF'

def connection_lost(self, exc):
assert self.state in ('CONNECTED', 'EOF'), self.state
self._assert_state('CONNECTED', 'EOF')
self.state = 'CLOSED'
if self.done:
self.done.set_result(None)

def data_received(self, data):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.nbytes += len(data)
self.data.extend(data)
super().data_received(data)
Expand Down
14 changes: 9 additions & 5 deletions Lib/test/test_asyncio/test_sock_lowlevel.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,24 +23,28 @@ def __init__(self, loop=None):
self.connected = loop.create_future()
self.done = loop.create_future()

def _assert_state(self, *expected):
if self.state not in expected:
raise AssertionError(f'state: {self.state!r}, expected: {expected!r}')

def connection_made(self, transport):
self.transport = transport
assert self.state == 'INITIAL', self.state
self._assert_state('INITIAL')
self.state = 'CONNECTED'
if self.connected:
self.connected.set_result(None)
transport.write(b'GET / HTTP/1.0\r\nHost: example.com\r\n\r\n')

def data_received(self, data):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.nbytes += len(data)

def eof_received(self):
assert self.state == 'CONNECTED', self.state
self._assert_state('CONNECTED')
self.state = 'EOF'

def connection_lost(self, exc):
assert self.state in ('CONNECTED', 'EOF'), self.state
self._assert_state('CONNECTED', 'EOF')
self.state = 'CLOSED'
if self.done:
self.done.set_result(None)
Expand Down Expand Up @@ -451,7 +455,7 @@ def test_create_connection_sock(self):
else:
break
else:
assert False, 'Can not create socket.'
self.fail('Can not create socket.')

f = self.loop.create_connection(
lambda: MyProto(loop=self.loop), sock=sock)
Expand Down
6 changes: 3 additions & 3 deletions Lib/test/test_asyncio/test_sslproto.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,9 +383,9 @@ def connection_made(self, tr):
def get_buffer(self, sizehint):
return self.buf

def buffer_updated(self, nsize):
assert nsize == 1
self.on_data.set_result(bytes(self.buf[:nsize]))
def buffer_updated(slf, nsize):
self.assertEqual(nsize, 1)
slf.on_data.set_result(bytes(slf.buf[:nsize]))

class ClientProtoSecond(asyncio.Protocol):
def __init__(self, on_data, on_eof):
Expand Down
Loading