📄 pythoncompletionwithoutbuiltinstest.java
字号:
s = "" +
"class Test:\n" +
" classVar = 1\n"+
" def findIt(self):\n"+
" self.";
requestCompl(s, s.length(), -1, new String[] { "classVar"});
}
public void testInnerCtxt() throws CoreException, BadLocationException{
String s;
s = "" +
"class Test:\n"+
" def findIt(self):\n"+
" pass\n"+
" \n"+
"def m1():\n"+
" s = Test()\n"+
" s.";
requestCompl(s, s.length(), -1, new String[] { "findIt()"});
}
public void testDeepNested() throws CoreException, BadLocationException{
String s;
s = "" +
"from extendable.nested2 import hub\n"+
"hub.c1.a.";
requestCompl(s, s.length(), -1, new String[] { "fun()"});
}
public void testDeepNested2() throws CoreException, BadLocationException{
String s;
s = "" +
"from extendable.nested2 import hub\n"+
"hub.c1.b.";
requestCompl(s, s.length(), -1, new String[] { "another()"});
}
public void testDeepNested3() throws CoreException, BadLocationException{
String s;
s = "" +
"from extendable.nested2 import hub\n"+
"hub.c1.c.";
requestCompl(s, s.length(), -1, new String[] { "another()"});
}
public void testDeepNested4() throws CoreException, BadLocationException{
String s;
s = "" +
"from extendable.nested2 import hub\n"+
"hub.c1.d.";
requestCompl(s, s.length(), -1, new String[] { "AnotherTest"});
}
public void testDeepNested5() throws CoreException, BadLocationException{
String s;
s = "" +
"from extendable.nested2 import hub\n"+
"hub.c1.e.";
requestCompl(s, s.length(), -1, new String[] { "assertBMPsNotEqual"});
}
public void testDeepNested6() throws CoreException, BadLocationException{
String s;
s = "" +
"from extendable.nested2 import mod2\n"+
"mod2.c1.a.";
requestCompl(s, s.length(), -1, new String[] { "fun()"});
}
public void testSelfReferenceWithTabs2() throws CoreException, BadLocationException{
String s;
s = "" +
"class C:\n" +
" def met3(self):\n" +
" self.COMPLETE_HERE\n" +
" \n" +
" def met1(self): \n" +
" pass \n" +
"";
s = s.replaceAll("\\ \\ \\ \\ ", "\t");
int iComp = s.indexOf("COMPLETE_HERE");
s = s.replaceAll("COMPLETE_HERE", "");
requestCompl(s, iComp, -1, new String[] { "met1()"});
}
public void testRelativeImport() throws FileNotFoundException, CoreException, BadLocationException{
String file = TestDependent.TEST_PYSRC_LOC+"testlib/unittest/relative/testrelative.py";
String strDoc = "from toimport import ";
requestCompl(new File(file), strDoc, strDoc.length(), -1, new String[]{"Test1", "Test2"});
}
public void testWildImportRecursive() throws BadLocationException, IOException, Exception{
String s;
s = "from testrecwild import *\n" +
"";
requestCompl(s, -1, -1, new String[] { "Class1"});
}
public void testWildImportRecursive2() throws BadLocationException, IOException, Exception{
String s;
s = "from testrecwild2 import *\n" +
"";
requestCompl(s, -1, -1, new String[] { "Class2"});
}
public void testWildImportRecursive3() throws BadLocationException, IOException, Exception{
String s;
s = "from testrec2 import *\n" +
"";
requestCompl(s, -1, -1, new String[] { "Leaf"});
}
public void testProperties() throws BadLocationException, IOException, Exception{
String s;
s =
"class C:\n" +
" \n" +
" properties.create(test = 0)\n" +
" \n" +
"c = C.";
requestCompl(s, -1, -1, new String[] { "test"});
}
public void testImportMultipleFromImport() throws BadLocationException, IOException, Exception{
String s;
s = "import testlib.unittest.relative\n" +
"";
requestCompl(s, -1, -1, new String[] { "testlib","testlib.unittest","testlib.unittest.relative"});
}
public void testImportMultipleFromImport2() throws BadLocationException, IOException, Exception{
String s;
s = "import testlib.unittest.relative\n" +
"testlib.";
requestCompl(s, -1, 0, new String[] { });
}
public void testNestedImports() throws BadLocationException, IOException, Exception{
String s;
s = "from extendable import nested\n"+
"print nested.NestedClass.";
requestCompl(s, -1, 1, new String[] { "nestedMethod(self)" });
}
public void testSameName() throws BadLocationException, IOException, Exception{
String s;
s = "from extendable.namecheck import samename\n"+
"print samename.";
requestCompl(s, -1, 1, new String[] { "method1(self)" });
}
public void testSameName2() throws BadLocationException, IOException, Exception{
String s;
s = "from extendable import namecheck\n"+
"print namecheck.samename.";
requestCompl(s, -1, 1, new String[] { "method1(self)" });
}
public void testCompositeImport() throws BadLocationException, IOException, Exception{
String s;
s = "import xml.sax\n"+
"print xml.sax.";
requestCompl(s, -1, -1, new String[] { "default_parser_list" });
}
public void testIsInGlobalTokens() throws BadLocationException, IOException, Exception{
IModule module = nature.getAstManager().getModule("testAssist.__init__", nature, true);
assertTrue(module.isInGlobalTokens("assist.ExistingClass.existingMethod", nature));
}
public void testGetActTok(){
String strs[];
strs = PySelection.getActivationTokenAndQual(new Document(""), 0, false);
assertEquals("", strs[0]);
assertEquals("", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("self.assertEquals( DECAY_COEF, t.item(0, C).text())"), 42, false);
assertEquals("" , strs[0]);
assertEquals("C", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("self.assertEquals( DECAY_COEF, t.item(0,C).text())"), 41, false);
assertEquals("" , strs[0]);
assertEquals("C", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("m = met(self.c, self.b)"), 14, false);
assertEquals("self." , strs[0]);
assertEquals("c", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("[a,b].ap"), 8, false);
assertEquals("list." , strs[0]);
assertEquals("ap", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("{a:1,b:2}.ap"), 12, false);
assertEquals("dict." , strs[0]);
assertEquals("ap", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("''.ap"), 5, false);
assertEquals("str." , strs[0]);
assertEquals("ap", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("\"\".ap"), 5, false);
assertEquals("str." , strs[0]);
assertEquals("ap", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("ClassA.someMethod.ap"), 20, false);
assertEquals("ClassA.someMethod." , strs[0]);
assertEquals("ap", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("ClassA.someMethod().ap"), 22, false);
assertEquals("ClassA.someMethod()." , strs[0]);
assertEquals("ap", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("ClassA.someMethod( a, b ).ap"), 28, false);
assertEquals("ClassA.someMethod()." , strs[0]);
assertEquals("ap", strs[1]);
String s = "Foo().";
strs = PySelection.getActivationTokenAndQual(new Document(s), s.length(), false);
assertEquals("Foo().", strs[0]);
assertEquals("", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("foo.bar"), 2, false);
assertEquals("" , strs[0]);
assertEquals("fo", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("foo.bar"), 2, false);
assertEquals("" , strs[0]);
assertEquals("fo", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("foo.bar"), 2, true);
assertEquals("" , strs[0]);
assertEquals("foo", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("foo.bar "), 2, true);
assertEquals("" , strs[0]);
assertEquals("foo", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("foo.bar "), 5, true); //get the full qualifier
assertEquals("foo.", strs[0]);
assertEquals("bar", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("foo.bar "), 5, false); //get just a part of it
assertEquals("foo.", strs[0]);
assertEquals("b", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("foo.bar "), 100, true); //out of the league
assertEquals("", strs[0]);
assertEquals("", strs[1]);
String importsTipperStr = ImportsSelection.getImportsTipperStr(new Document("from coilib.decorators import "), 30).importsTipperStr;
assertEquals("coilib.decorators" , importsTipperStr);
strs = PySelection.getActivationTokenAndQual(new Document("foo.bar.xxx "), 9, true);
assertEquals("foo.bar.", strs[0]);
assertEquals("xxx", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("foo.bar.xxx "), 9, false);
assertEquals("foo.bar.", strs[0]);
assertEquals("x", strs[1]);
strs = PySelection.getActivationTokenAndQual(new Document("m1(a.b)"), 4, false);
assertEquals("", strs[0]);
assertEquals("a", strs[1]);
//Ok, now, the tests for getting the activation token and qualifier for the calltips.
//We should 'know' that we're just after a parentesis and get the contents before it
//This means: get the char before the offset (excluding spaces and tabs) and see
//if it is a ',' or '(' and if it is, go to that offset and do the rest of the process
//as if we were on that position
ActivationTokenAndQual act = PySelection.getActivationTokenAndQual(new Document("m1()"), 3, false, true);
assertEquals("", act.activationToken);
assertEquals("m1", act.qualifier);
assertTrue(act.changedForCalltip);
assertFalse(act.alreadyHasParams);
act = PySelection.getActivationTokenAndQual(new Document("m1.m2()"), 6, false, true);
assertEquals("m1.", act.activationToken);
assertEquals("m2", act.qualifier);
assertTrue(act.changedForCalltip);
assertFalse(act.alreadyHasParams);
act = PySelection.getActivationTokenAndQual(new Document("m1.m2( \t)"), 9, false, true);
assertEquals("m1.", act.activationToken);
assertEquals("m2", act.qualifier);
assertTrue(act.changedForCalltip);
assertFalse(act.alreadyHasParams);
act = PySelection.getActivationTokenAndQual(new Document("m1(a , \t)"), 9, false, true);
assertEquals("", act.activationToken);
assertEquals("m1", act.qualifier);
assertTrue(act.changedForCalltip);
assertTrue(act.alreadyHasParams);
}
/**
* @throws BadLocationException
* @throws CoreException
*
*/
public void testFor() throws CoreException, BadLocationException {
String s;
s = "" +
"for event in a: \n" +
" print event \n" +
" \n" +
"event.";
try {
requestCompl(s, s.length(), -1, new String[] {});
} catch (StackOverflowError e) {
throw new RuntimeException(e);
}
}
public void testCompletionAfterClassInstantiation() throws CoreException, BadLocationException {
String s;
s = "" +
"class Foo:\n" +
" def m1(self):pass\n" +
"\n" +
"Foo()." +
"";
ICompletionProposal[] proposals = requestCompl(s, s.length(), -1, new String[] {});
assertEquals(1, proposals.length);
}
public void testClassConstructorParams() throws CoreException, BadLocationException {
String s;
String original = "" +
"class Foo:\n" +
" def __init__(self, a, b):pass\n\n" +
" def m1(self):pass\n\n" +
"Foo(%s)" + //completion inside the empty parentesis should: add the parameters in link mode (a, b) and let the calltip there.
"";
s = StringUtils.format(original, "");
ICompletionProposal[] proposals = requestCompl(s, s.length()-1, -1, new String[] {});
assertEquals(1, proposals.length);
ICompletionProposal prop = proposals[0];
assertEquals("Foo(a, b)", prop.getDisplayString());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -