https://github.com/python/cpython/commit/2c7209a3bdf81a289ccd6b80a77497cfcd5732de
commit: 2c7209a3bdf81a289ccd6b80a77497cfcd5732de
branch: main
author: Steele Farnsworth <swfarnswo...@gmail.com>
committer: kumaraditya303 <kumaradi...@python.org>
date: 2024-06-17T20:18:17+05:30
summary:

gh-114091: Reword error message for unawaitable types (#114090)

Reword error message for unawaitable types.

files:
A Misc/NEWS.d/next/Core and 
Builtins/2024-01-15-21-51-26.gh-issue-114091.VOtSJl.rst
M Lib/test/test_asyncio/test_locks.py
M Lib/test/test_asyncio/test_pep492.py
M Lib/test/test_coroutines.py
M Objects/genobject.c

diff --git a/Lib/test/test_asyncio/test_locks.py 
b/Lib/test/test_asyncio/test_locks.py
index c961dadff9fef2..34509717f2872a 100644
--- a/Lib/test/test_asyncio/test_locks.py
+++ b/Lib/test/test_asyncio/test_locks.py
@@ -39,7 +39,7 @@ async def test_lock(self):
 
         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 @@ async def test_lock_by_with_statement(self):
             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 @@ async def test_semaphore(self):
 
         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 @@ async def test_barrier(self):
         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 dc25a46985e349..033784bc7aec05 100644
--- a/Lib/test/test_asyncio/test_pep492.py
+++ b/Lib/test/test_asyncio/test_pep492.py
@@ -77,7 +77,7 @@ async def test(lock):
             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 f705f4f5bfbd88..a677301c62becc 100644
--- a/Lib/test/test_coroutines.py
+++ b/Lib/test/test_coroutines.py
@@ -974,13 +974,13 @@ def test_await_1(self):
 
         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 Awaitable:
         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 00000000000000..55b7d9104baed9
--- /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 92cd8c61e7e9ca..662e644f8aeddd 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;
 }

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to