summaryrefslogtreecommitdiff
path: root/python/testSrc/com/jetbrains/env/python/PyPackageRequirementsInspectionTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'python/testSrc/com/jetbrains/env/python/PyPackageRequirementsInspectionTest.java')
-rw-r--r--python/testSrc/com/jetbrains/env/python/PyPackageRequirementsInspectionTest.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/python/testSrc/com/jetbrains/env/python/PyPackageRequirementsInspectionTest.java b/python/testSrc/com/jetbrains/env/python/PyPackageRequirementsInspectionTest.java
new file mode 100644
index 000000000000..8e3b75dd56a0
--- /dev/null
+++ b/python/testSrc/com/jetbrains/env/python/PyPackageRequirementsInspectionTest.java
@@ -0,0 +1,83 @@
+package com.jetbrains.env.python;
+
+import com.google.common.collect.ImmutableSet;
+import com.intellij.openapi.module.Module;
+import com.intellij.openapi.projectRoots.Sdk;
+import com.intellij.openapi.roots.ModuleRootModificationUtil;
+import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.testFramework.PsiTestUtil;
+import com.jetbrains.env.PyEnvTestCase;
+import com.jetbrains.env.PyExecutionFixtureTestTask;
+import com.jetbrains.python.PythonTestUtil;
+import com.jetbrains.python.inspections.PyPackageRequirementsInspection;
+import com.jetbrains.python.sdkTools.SdkCreationType;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Set;
+
+/**
+ * @author vlan
+ */
+public class PyPackageRequirementsInspectionTest extends PyEnvTestCase {
+ public static final ImmutableSet<String> TAGS = ImmutableSet.of("requirements");
+
+ public void testPartiallySatisfiedRequirementsTxt() {
+ doTest("test1.py");
+ }
+
+ public void testPartiallySatisfiedSetupPy() {
+ doTest("test1.py");
+ }
+
+ public void testImportsNotInRequirementsTxt() {
+ doTest("test1.py");
+ }
+
+ public void testDuplicateInstallAndTests() {
+ doTest("test1.py");
+ }
+
+ private void doTest(@NotNull final String filename) {
+ final String dir = getTestName(false);
+ runPythonTest(new PyExecutionFixtureTestTask() {
+ @Override
+ protected String getTestDataPath() {
+ return PythonTestUtil.getTestDataPath() + "/inspections/PyPackageRequirementsInspection";
+ }
+
+ @Override
+ public void runTestOn(String sdkHome) throws Exception {
+ myFixture.enableInspections(PyPackageRequirementsInspection.class);
+ final Sdk sdk = createTempSdk(sdkHome, SdkCreationType.SDK_PACKAGES_ONLY);
+ final String perSdkDir = Integer.toHexString(System.identityHashCode(sdk));
+ final VirtualFile root = myFixture.copyDirectoryToProject(dir, perSdkDir);
+ assertNotNull(root);
+ final Module module = myFixture.getModule();
+ setupModuleSdk(module, sdk, root);
+ try {
+ final VirtualFile file = root.findFileByRelativePath(filename);
+ assertNotNull(file);
+ edt(new Runnable() {
+ @Override
+ public void run() {
+ myFixture.testHighlighting(true, true, true, file);
+ }
+ });
+ }
+ finally {
+ PsiTestUtil.removeAllRoots(module, sdk);
+ }
+ }
+
+ @Override
+ public Set<String> getTags() {
+ return TAGS;
+ }
+ });
+ }
+
+ private static void setupModuleSdk(@NotNull Module module, @NotNull Sdk sdk, @NotNull VirtualFile root) {
+ ModuleRootModificationUtil.setModuleSdk(module, sdk);
+ PsiTestUtil.addContentRoot(module, root);
+ }
+}