PY-3674 Completion items starting with underscore moved down

When sorted by the relevance internal items (the one starting with
underscore) now weighted down to appear at the end of completion list.
This commit is contained in:
Anton Bragin
2018-04-03 10:58:31 +03:00
parent 783ff57c78
commit 9b5a4eb70d
6 changed files with 74 additions and 11 deletions
@@ -42,6 +42,15 @@ public class PythonCompletionTest extends PyTestCase {
myFixture.checkResultByFile(getTestName(true) + "/a.after.py");
}
private void doMultiFileTestAssertSameOrderedElements(String... variants) {
myFixture.copyDirectoryToProject(getTestName(true), "");
myFixture.configureByFile("a.py");
myFixture.completeBasic();
final List<String> suggested = myFixture.getLookupElementStrings();
assertNotNull(suggested);
assertOrderedEquals(suggested, variants);
}
@Nullable
private List<String> doTestByText(@NotNull String text) {
myFixture.configureByText(PythonFileType.INSTANCE, text);
@@ -1262,22 +1271,23 @@ public class PythonCompletionTest extends PyTestCase {
// PY-28461
public void testImplicitImportsInsidePackage() {
runWithLanguageLevel(LanguageLevel.PYTHON37,
() -> doMultiFileAssertSameElements("m1", "pkg2", "pkg3", "bar", "foo", "foo2"));
() -> doMultiFileTestAssertSameOrderedElements("bar", "foo", "foo2", "m1", "pkg2", "pkg3"));
}
// PY-28461
public void testImplicitImportsInsidePackagePy2() {
runWithLanguageLevel(LanguageLevel.PYTHON27,
() -> doMultiFileAssertSameElements("m1", "pkg2", "pkg3", "bar", "foo", "foo2"));
() -> doMultiFileTestAssertSameOrderedElements("bar", "foo", "foo2", "m1", "pkg2", "pkg3"));
}
private void doMultiFileAssertSameElements(String... variants) {
myFixture.copyDirectoryToProject(getTestName(true), "");
myFixture.configureByFile("a.py");
myFixture.completeBasic();
final List<String> suggested = myFixture.getLookupElementStrings();
assertNotNull(suggested);
assertSameElements(suggested, variants);
// PY-3674
public void testUnderscoredItemsOrderModuleImport() {
doMultiFileTestAssertSameOrderedElements("A", "B", "f", "_A", "_f", "_g", "__A", "__f");
}
// PY-3674
public void testUnderscoredItemsOrderFromModuleImport() {
doMultiFileTestAssertSameOrderedElements("A", "B", "f", "_A", "_f", "_g", "__A", "__f");
}
// PY-17810