diff --git a/python/src/com/jetbrains/python/testing/pyTestParametrized/PyTestParamterized.kt b/python/src/com/jetbrains/python/testing/pyTestParametrized/PyTestParamterized.kt index 4918c00834aa..acf589bcd518 100644 --- a/python/src/com/jetbrains/python/testing/pyTestParametrized/PyTestParamterized.kt +++ b/python/src/com/jetbrains/python/testing/pyTestParametrized/PyTestParamterized.kt @@ -61,7 +61,7 @@ private fun getParametersFromDecorator(decorator: PyDecorator, evalContext: Type parameterTypes[i] = PyUnionType.union(members.map { (it as? PyTupleType)?.getElementType(i) }) } } - is PyTupleType -> iteratedItemType.elementTypes.forEachIndexed { i, type -> parameterTypes[i] = type } + is PyTupleType -> iteratedItemType.elementTypes.forEachIndexed { i, type -> if (parameterTypes.size > i) parameterTypes[i] = type } !is PyCollectionType -> parameterTypes.fill(iteratedItemType) } diff --git a/python/testData/testCompletion/after_test_parametrized.txt b/python/testData/testCompletion/after_test_parametrized.txt index cd30b1a3e1fb..aa4c5f97130e 100644 --- a/python/testData/testCompletion/after_test_parametrized.txt +++ b/python/testData/testCompletion/after_test_parametrized.txt @@ -12,3 +12,7 @@ def test_returns_correct_result(test_input, expected, x, y): # False positive: x.bit_length() test_input.__len__() expected.bit_length() + +@pytest.mark.parametrize(('x', 'y'), [(1, 2, 3, 4)]) # Too many values in tuple, should be 2 +def test_wrong_number_of_parameters(x, y): + x.bit_length() diff --git a/python/testData/testCompletion/test_parametrized.py b/python/testData/testCompletion/test_parametrized.py index a81848a49966..c160eaafad2f 100644 --- a/python/testData/testCompletion/test_parametrized.py +++ b/python/testData/testCompletion/test_parametrized.py @@ -12,3 +12,7 @@ def test_returns_correct_result(test_input, expected, x, y): # False positive: x.bit_len test_input.len expected.bit_len + +@pytest.mark.parametrize(('x', 'y'), [(1, 2, 3, 4)]) # Too many values in tuple, should be 2 +def test_wrong_number_of_parameters(x, y): + x.bit_len