blob: 8e3b75dd56a0102ec4c2ec9549f48ec05262810c [file] [log] [blame]
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);
}
}