Skip to content

Commit

Permalink
pythongh-93357: Port test cases to IsolatedAsyncioTestCase, part 2 (p…
Browse files Browse the repository at this point in the history
…ython#97896)

This fixes the buildbots.
  • Loading branch information
arhadthedev authored and mpage committed Oct 11, 2022
1 parent a47df46 commit 2d20cf5
Showing 1 changed file with 15 additions and 29 deletions.
44 changes: 15 additions & 29 deletions Lib/test/test_asyncio/test_streams.py
Original file line number Diff line number Diff line change
Expand Up @@ -941,34 +941,32 @@ def test_LimitOverrunError_pickleable(self):
self.assertEqual(str(e), str(e2))
self.assertEqual(e.consumed, e2.consumed)

class NewStreamTests2(unittest.IsolatedAsyncioTestCase):
async def test_wait_closed_on_close(self):
async with test_utils.run_test_server() as httpd:
rd, wr = self.loop.run_until_complete(
asyncio.open_connection(*httpd.address))
with test_utils.run_test_server() as httpd:
rd, wr = await asyncio.open_connection(*httpd.address)

wr.write(b'GET / HTTP/1.0\r\n\r\n')
data = await rd.readline()
self.assertEqual(data, b'HTTP/1.0 200 OK\r\n')
await rd.read()
data = await rd.read()
self.assertTrue(data.endswith(b'\r\n\r\nTest message'))
self.assertFalse(wr.is_closing())
wr.close()
self.assertTrue(wr.is_closing())
await wr.wait_closed()

def test_wait_closed_on_close_with_unread_data(self):
async def test_wait_closed_on_close_with_unread_data(self):
with test_utils.run_test_server() as httpd:
rd, wr = self.loop.run_until_complete(
asyncio.open_connection(*httpd.address))
rd, wr = await asyncio.open_connection(*httpd.address)

wr.write(b'GET / HTTP/1.0\r\n\r\n')
f = rd.readline()
data = self.loop.run_until_complete(f)
data = await rd.readline()
self.assertEqual(data, b'HTTP/1.0 200 OK\r\n')
wr.close()
self.loop.run_until_complete(wr.wait_closed())
await wr.wait_closed()

def test_async_writer_api(self):
async def test_async_writer_api(self):
async def inner(httpd):
rd, wr = await asyncio.open_connection(*httpd.address)

Expand All @@ -980,15 +978,10 @@ async def inner(httpd):
wr.close()
await wr.wait_closed()

messages = []
self.loop.set_exception_handler(lambda loop, ctx: messages.append(ctx))

with test_utils.run_test_server() as httpd:
self.loop.run_until_complete(inner(httpd))

self.assertEqual(messages, [])
await inner(httpd)

def test_async_writer_api_exception_after_close(self):
async def test_async_writer_api_exception_after_close(self):
async def inner(httpd):
rd, wr = await asyncio.open_connection(*httpd.address)

Expand All @@ -1002,24 +995,17 @@ async def inner(httpd):
wr.write(b'data')
await wr.drain()

messages = []
self.loop.set_exception_handler(lambda loop, ctx: messages.append(ctx))

with test_utils.run_test_server() as httpd:
self.loop.run_until_complete(inner(httpd))

self.assertEqual(messages, [])
await inner(httpd)

async def test_eof_feed_when_closing_writer(self):
# See http://bugs.python.org/issue35065
async with test_utils.run_test_server() as httpd:
with test_utils.run_test_server() as httpd:
rd, wr = await asyncio.open_connection(*httpd.address)
wr.close()
f = wr.wait_closed()
self.loop.run_until_complete(f)
await wr.wait_closed()
self.assertTrue(rd.at_eof())
f = rd.read()
data = self.loop.run_until_complete(f)
data = await rd.read()
self.assertEqual(data, b'')


Expand Down

0 comments on commit 2d20cf5

Please sign in to comment.