summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteele Farnsworth <swfarnsworth@gmail.com>2024-06-17 14:48:17 (GMT)
committerGitHub <noreply@github.com>2024-06-17 14:48:17 (GMT)
commit2c7209a3bdf81a289ccd6b80a77497cfcd5732de (patch)
treec17030b4b85ca4bd6db48f2764b6e3279933d61e
parenta26d27e7ee512cd822b7a7ba075171152779ffdd (diff)
downloadcpython-2c7209a3bdf81a289ccd6b80a77497cfcd5732de.zip
cpython-2c7209a3bdf81a289ccd6b80a77497cfcd5732de.tar.gz
cpython-2c7209a3bdf81a289ccd6b80a77497cfcd5732de.tar.bz2
gh-114091: Reword error message for unawaitable types (#114090)
Reword error message for unawaitable types.
-rw-r--r--Lib/test/test_asyncio/test_locks.py8
-rw-r--r--Lib/test/test_asyncio/test_pep492.py2
-rw-r--r--Lib/test/test_coroutines.py6
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2024-01-15-21-51-26.gh-issue-114091.VOtSJl.rst1
-rw-r--r--Objects/genobject.c2
5 files changed, 10 insertions, 9 deletions
diff --git a/Lib/test/test_asyncio/test_locks.py b/Lib/test/test_asyncio/test_locks.py
index c961dad..3450971 100644
--- a/Lib/test/test_asyncio/test_locks.py
+++ b/Lib/test/test_asyncio/test_locks.py
@@ -39,7 +39,7 @@ class LockTests(unittest.IsolatedAsyncioTestCase):
with self.assertRaisesRegex(
TypeError,
- "object Lock can't be used in 'await' expression"
+ "'Lock' object can't be awaited"
):
await lock
@@ -77,7 +77,7 @@ class LockTests(unittest.IsolatedAsyncioTestCase):
self.assertFalse(lock.locked())
with self.assertRaisesRegex(
TypeError,
- r"object \w+ can't be used in 'await' expression"
+ r"'\w+' object can't be awaited"
):
with await lock:
pass
@@ -941,7 +941,7 @@ class SemaphoreTests(unittest.IsolatedAsyncioTestCase):
with self.assertRaisesRegex(
TypeError,
- "object Semaphore can't be used in 'await' expression",
+ "'Semaphore' object can't be awaited",
):
await sem
@@ -1270,7 +1270,7 @@ class BarrierTests(unittest.IsolatedAsyncioTestCase):
self.assertIn("filling", repr(barrier))
with self.assertRaisesRegex(
TypeError,
- "object Barrier can't be used in 'await' expression",
+ "'Barrier' object can't be awaited",
):
await barrier
diff --git a/Lib/test/test_asyncio/test_pep492.py b/Lib/test/test_asyncio/test_pep492.py
index dc25a46..033784b 100644
--- a/Lib/test/test_asyncio/test_pep492.py
+++ b/Lib/test/test_asyncio/test_pep492.py
@@ -77,7 +77,7 @@ class LockTests(BaseTest):
self.assertFalse(lock.locked())
with self.assertRaisesRegex(
TypeError,
- "can't be used in 'await' expression"
+ "can't be awaited"
):
with await lock:
pass
diff --git a/Lib/test/test_coroutines.py b/Lib/test/test_coroutines.py
index f705f4f..a677301 100644
--- a/Lib/test/test_coroutines.py
+++ b/Lib/test/test_coroutines.py
@@ -974,13 +974,13 @@ class CoroutineTest(unittest.TestCase):
async def foo():
await 1
- with self.assertRaisesRegex(TypeError, "object int can.t.*await"):
+ with self.assertRaisesRegex(TypeError, "'int' object can.t be awaited"):
run_async(foo())
def test_await_2(self):
async def foo():
await []
- with self.assertRaisesRegex(TypeError, "object list can.t.*await"):
+ with self.assertRaisesRegex(TypeError, "'list' object can.t be awaited"):
run_async(foo())
def test_await_3(self):
@@ -1040,7 +1040,7 @@ class CoroutineTest(unittest.TestCase):
async def foo(): return await Awaitable()
with self.assertRaisesRegex(
- TypeError, "object Awaitable can't be used in 'await' expression"):
+ TypeError, "'Awaitable' object can't be awaited"):
run_async(foo())
diff --git a/Misc/NEWS.d/next/Core and Builtins/2024-01-15-21-51-26.gh-issue-114091.VOtSJl.rst b/Misc/NEWS.d/next/Core and Builtins/2024-01-15-21-51-26.gh-issue-114091.VOtSJl.rst
new file mode 100644
index 0000000..55b7d91
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2024-01-15-21-51-26.gh-issue-114091.VOtSJl.rst
@@ -0,0 +1 @@
+Changed the error message for awaiting something that can't be awaited from "object <type> can't be used in an await expression" to "'<type>' object can't be awaited".
diff --git a/Objects/genobject.c b/Objects/genobject.c
index 92cd8c6..662e644 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -1047,7 +1047,7 @@ _PyCoro_GetAwaitableIter(PyObject *o)
}
PyErr_Format(PyExc_TypeError,
- "object %.100s can't be used in 'await' expression",
+ "'%.100s' object can't be awaited",
ot->tp_name);
return NULL;
}