gh-131936: Strengthen check in _suggestions._generate_suggestions (#131945)

This commit is contained in:
Peter Bierma 2025-03-31 13:30:29 -04:00 committed by GitHub
parent 0f511d8b44
commit 511d3440a0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 26 additions and 2 deletions

View file

@ -4619,7 +4619,31 @@ class MiscTest(unittest.TestCase):
@cpython_only
def test_suggestions_extension(self):
# Check that the C extension is available
import _suggestions # noqa: F401
import _suggestions
self.assertEqual(
_suggestions._generate_suggestions(
["hello", "world"],
"hell"
),
"hello"
)
self.assertEqual(
_suggestions._generate_suggestions(
["hovercraft"],
"eels"
),
None
)
# gh-131936: _generate_suggestions() doesn't accept list subclasses
class MyList(list):
pass
with self.assertRaises(TypeError):
_suggestions._generate_suggestions(MyList(), "")
class TestColorizedTraceback(unittest.TestCase):

View file

@ -21,7 +21,7 @@ _suggestions__generate_suggestions_impl(PyObject *module,
/*[clinic end generated code: output=79be7b653ae5e7ca input=ba2a8dddc654e33a]*/
{
// Check if dir is a list
if (!PyList_Check(candidates)) {
if (!PyList_CheckExact(candidates)) {
PyErr_SetString(PyExc_TypeError, "candidates must be a list");
return NULL;
}