gh-131936: Strengthen check in `_suggestions._generate_suggestions` (GH-131945)
(cherry picked from commit
511d3440a0bbb19731f4d96dde65dffbf85cdda5)
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
@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):
/*[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;
}