PY-44026 Add unit tests to completion with auto-import

GitOrigin-RevId: 7965daa063753606ea1d3de9f9bc0829c51fbabf
This commit is contained in:
Lada Gagina
2021-02-17 15:56:33 +00:00
committed by intellij-monorepo-bot
parent aa3041a69f
commit e5bd01ff28
17 changed files with 70 additions and 0 deletions
@@ -0,0 +1 @@
fooba<caret>
@@ -0,0 +1,3 @@
class MyClass:
def __init__(self):
pass
@@ -0,0 +1,3 @@
import foo.bar
foo.bar.MyClass
@@ -0,0 +1,3 @@
import foo.bar
foo.bar.func()
@@ -0,0 +1,22 @@
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.jetbrains.python;
import com.intellij.psi.util.QualifiedName;
import com.jetbrains.python.fixtures.PyTestCase;
import com.jetbrains.python.psi.stubs.PyQualifiedNameCompletionMatcher.QualifiedNameMatcher;
import java.util.List;
public class PyNotImportedPackageNameCompletionTest extends PyTestCase {
public void testDotAfterPackageName() {
myFixture.copyDirectoryToProject(getTestName(false), "");
myFixture.configureByFile("main.py");
myFixture.completeBasic();
myFixture.checkResultByFile(getTestName(true) + "/main.after.py");
}
@Override
protected String getTestDataPath() {
return super.getTestDataPath() + "/completion/notImportedPackageName/";
}
}
@@ -18,6 +18,16 @@ public class PyNotImportedQualifiedNameCompletionTest extends PyTestCase {
assertContainsElements(variants, "bar.func", "baz.quux.func");
}
public void testQualifiedNamesAlwaysMatchedByFirstComponentOfQualifierWithEmptyAttributeName() {
myFixture.copyDirectoryToProject(getTestName(false), "");
myFixture.configureByFile("main.py");
myFixture.completeBasic();
List<String> variants = myFixture.getLookupElementStrings();
assertNotNull(variants);
assertDoesntContain(variants, "foo.bar.func");
assertContainsElements(variants, "bar.func", "bar.func1");
}
public void testQualifiedNameMatcherTest() {
QualifiedNameMatcher matcher = new QualifiedNameMatcher(QualifiedName.fromDottedString("foo.bar.baz"));
assertTrue(matcher.prefixMatches("foo.bar.baz"));
@@ -35,6 +45,20 @@ public class PyNotImportedQualifiedNameCompletionTest extends PyTestCase {
assertFalse(matcher.prefixMatches("xxx.foo.bar.baz"));
}
public void testImportForModuleFunctionIsAdded() {
myFixture.copyDirectoryToProject(getTestName(false), "");
myFixture.configureByFile("main.py");
myFixture.completeBasic();
myFixture.checkResultByFile(getTestName(true) + "/main.after.py");
}
public void testImportForModuleClassIsAdded() {
myFixture.copyDirectoryToProject(getTestName(false), "");
myFixture.configureByFile("main.py");
myFixture.completeBasic();
myFixture.checkResultByFile(getTestName(true) + "/main.after.py");
}
@Override
protected String getTestDataPath() {
return super.getTestDataPath() + "/completion/notImportedQualifiedName/";