PY-83529 Add tests for binary skeletons resolution

(cherry picked from commit 419975ed4ccbc4690cabe4f57307b0d6ad4fbc1e)

GitOrigin-RevId: cff0c0137a2f0b51ded1da567baf6fa9ed7c5e6f
This commit is contained in:
Petr
2025-11-12 17:28:35 +00:00
committed by intellij-monorepo-bot
parent dc664f0c32
commit c6222fa129
33 changed files with 82 additions and 1 deletions
@@ -861,6 +861,38 @@ public class Py3CompletionTest extends PyTestCase {
);
}
public void testImportNestedBinarySubModule() {
final String testDir = getTestName(true);
runWithAdditionalClassEntryInSdkRoots(testDir + "/site-packages", () -> {
runWithAdditionalClassEntryInSdkRoots(testDir + "/python_stubs", () -> {
for (String fileName : List.of("import_binary",
"from_import_binary",
"import_attribute_from_binary",
"import_and_reference_binary")) {
myFixture.configureByFile("%s/%s.py".formatted(testDir, fileName));
myFixture.completeBasic();
myFixture.checkResultByFile("%s/%s.after.py".formatted(testDir, fileName));
}
});
});
}
public void testImportNestedBinarySubModuleNoInitPy() {
final String testDir = getTestName(true);
runWithAdditionalClassEntryInSdkRoots(testDir + "/site-packages", () -> {
runWithAdditionalClassEntryInSdkRoots(testDir + "/python_stubs", () -> {
for (String fileName : List.of("import_binary",
"from_import_binary",
"import_attribute_from_binary",
"import_and_reference_binary")) {
myFixture.configureByFile("%s/%s.py".formatted(testDir, fileName));
myFixture.completeBasic();
myFixture.checkResultByFile("%s/%s.after.py".formatted(testDir, fileName));
}
});
});
}
private void doTestVariants(String @NotNull ... expected) {
final String testName = getTestName(true);
myFixture.configureByFile(testName + ".py");
@@ -624,7 +624,20 @@ public class PyMultiFileResolveTest extends PyMultiFileResolveTestCase {
runWithAdditionalClassEntryInSdkRoots(testDir + "/site-packages", () -> {
runWithAdditionalClassEntryInSdkRoots(testDir + "/python_stubs", () -> {
PsiFile file = myFixture.configureByFile(testDir + "/ImportAttributeFromNestedBinarySubModule.py");
assertResolveResult(doResolve(file), PyFunction.class, "func", null);
assertResolveResult(doResolve(file), PyFunction.class, "func", "binary.py");
});
});
}
public void testImportNestedBinarySubModule() {
final String testDir = getTestName(true);
runWithAdditionalClassEntryInSdkRoots(testDir + "/site-packages", () -> {
runWithAdditionalClassEntryInSdkRoots(testDir + "/python_stubs", () -> {
for (PsiFile file : myFixture.configureByFiles(testDir + "/import_binary.py",
testDir + "/import_and_reference_binary.py",
testDir + "/from_import_binary.py")) {
assertResolveResult(doResolve(file), PyFile.class, "binary.py", null);
}
});
});
}