diff --git a/python/testData/requirements/inspections/PyProjectTomlUnsatisfiedRequirement/pyproject.toml b/python/testData/requirements/inspections/PyProjectTomlUnsatisfiedRequirement/pyproject.toml new file mode 100644 index 000000000000..f7c8bf18abcb --- /dev/null +++ b/python/testData/requirements/inspections/PyProjectTomlUnsatisfiedRequirement/pyproject.toml @@ -0,0 +1,7 @@ +[project] +dependencies = [ + "mypy" +] + +[build-system] +requires = ["poetry-core"] \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/requirements/UnsatisfiedRequirementInspectionTest.kt b/python/testSrc/com/jetbrains/python/requirements/UnsatisfiedRequirementInspectionTest.kt index 9f1cbcc4567c..19fa0a38aaab 100644 --- a/python/testSrc/com/jetbrains/python/requirements/UnsatisfiedRequirementInspectionTest.kt +++ b/python/testSrc/com/jetbrains/python/requirements/UnsatisfiedRequirementInspectionTest.kt @@ -2,14 +2,28 @@ package com.jetbrains.python.requirements import com.intellij.codeInspection.ex.InspectionProfileImpl +import com.intellij.lang.annotation.HighlightSeverity +import com.intellij.testFramework.TestDataPath import com.jetbrains.python.sdk.pythonSdk +@TestDataPath("\$CONTENT_ROOT/../testData/requirements/inspections") class UnsatisfiedRequirementInspectionTest : PythonDependencyTestCase() { fun testUnsatisfiedRequirement() { doMultiFileTest("requirements.txt") assertContainsElements(myFixture.availableIntentions.map { it.text }, "Install package mypy", "Install all missing packages", "Run 'pip install -e .'") } + fun testPyProjectTomlUnsatisfiedRequirement() { + doMultiFileTest("pyproject.toml") + val warnings = myFixture.doHighlighting(HighlightSeverity.WARNING) + + listOf("mypy", "poetry-core").forEach { unsatisfiedPackage -> + val warning = warnings.single { it.text == unsatisfiedPackage } + assertEquals("Package $unsatisfiedPackage is not installed", warning.description) + } + } + + fun testEmptyRequirementsFile() { doMultiFileTest("requirements.txt") assertContainsElements(myFixture.availableIntentions.map { it.text }, "Add imported packages to requirements…") @@ -19,7 +33,7 @@ class UnsatisfiedRequirementInspectionTest : PythonDependencyTestCase() { myFixture.copyDirectoryToProject(getTestName(false), "") myFixture.configureFromTempProjectFile(filename) myFixture.enableInspections(UnsatisfiedRequirementInspection::class.java) - myFixture.checkHighlighting(true, false, true) + myFixture.checkHighlighting(true, false, true, false) } override fun setUp() {