diff --git a/python/src/META-INF/python-core-common.xml b/python/src/META-INF/python-core-common.xml
index f682b4445c94..cb711e9b09fe 100644
--- a/python/src/META-INF/python-core-common.xml
+++ b/python/src/META-INF/python-core-common.xml
@@ -67,6 +67,8 @@
+
() {
+ override fun addCompletions(parameters: CompletionParameters, context: ProcessingContext?, result: CompletionResultSet) {
+ val pyFunction = PsiTreeUtil.getParentOfType(parameters.position, PyParameterList::class.java)?.containingFunction ?: return
+ val module = ModuleUtilCore.findModuleForPsiElement(pyFunction) ?: return
+ val typeEvalContext = TypeEvalContext.userInitiated(pyFunction.project, pyFunction.containingFile)
+
+ if (TestRunnerService.getInstance(module).projectConfiguration != pyTestName) {
+ return
+ }
+ val usedParams = pyFunction.getParameters(typeEvalContext).mapNotNull { it.name }.toSet()
+ if (isTestElement(pyFunction, ThreeState.UNSURE, typeEvalContext)) {
+ getFixtures(module).map { it.name }.filter { !usedParams.contains(it) }.forEach {
+ result.addElement(PythonLookupElement(it, false, PythonIcons.Python.Function))
+ }
+ }
+ }
+}
+
+/**
+ * Provide pytest fixtures are possible arguments for tests
+ */
+class PyTestFixtureCompletionContributor : CompletionContributor() {
+ init {
+ extend(CompletionType.BASIC, PlatformPatterns.psiElement().inside(PyParameterList::class.java), PyTestFixtureCompletionProvider)
+ }
+}