/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.core.docutils;
import java.util.ArrayList;
import java.util.List;
import org.python.pydev.core.docutils.ImportHandle.ImportHandleInfo;
import junit.framework.TestCase;
public class ImportHandleTest extends TestCase {
public static void main(String[] args) {
try {
ImportHandleTest test = new ImportHandleTest();
test.setUp();
test.testImportHandleInfo3();
test.tearDown();
junit.textui.TestRunner.run(ImportHandleTest.class);
} catch (Throwable e) {
e.printStackTrace();
}
}
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testImportHandleInfo2() throws Exception {
ImportHandle importHandle = new ImportHandle(null, "import BBB", 0, 0);
List<ImportHandleInfo> importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals(null, importInfo.get(0).getFromImportStr());
ArrayList<String> lst = new ArrayList<String>();
lst.add("BBB");
assertEquals(lst, importInfo.get(0).getImportedStr());
importHandle = new ImportHandle(null, "import BBB, CCC", 0, 0);
importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals(null, importInfo.get(0).getFromImportStr());
lst = new ArrayList<String>();
lst.add("BBB");
lst.add("CCC");
assertEquals(lst, importInfo.get(0).getImportedStr());
importHandle = new ImportHandle(null, "import BBB, CCC #Comment", 0, 0);
importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals(null, importInfo.get(0).getFromImportStr());
lst = new ArrayList<String>();
lst.add("BBB");
lst.add("CCC");
assertEquals(lst, importInfo.get(0).getImportedStr());
ArrayList<String> comments = new ArrayList<String>();
comments.add("");
comments.add("#Comment");
assertEquals(comments, importInfo.get(0).getCommentsForImports());
}
public void testImportHandleInfoLines() throws Exception {
ImportHandle importHandle = new ImportHandle(null, "from AAA import (BBB, \nCCC);from XXX import YYY", 0, 1);
List<ImportHandleInfo> importInfo = importHandle.getImportInfo();
assertEquals(2, importInfo.size());
assertEquals("AAA", importInfo.get(0).getFromImportStr());
assertEquals("XXX", importInfo.get(1).getFromImportStr());
assertEquals(0, importInfo.get(0).getStartLine());
assertEquals(1, importInfo.get(0).getEndLine());
assertEquals(1, importInfo.get(1).getStartLine());
assertEquals(1, importInfo.get(1).getEndLine());
assertTrue(importInfo.get(1).getStartedInMiddleOfLine());
}
public void testImportHandleInfo3() throws Exception {
ImportHandle importHandle = new ImportHandle(null,
"from wx.xrc import XML_ATTRIBUTE_NODE, XML_CDATA_SECTION_NODE,\\\n"
+ "XML_DOCUMENT_FRAG_NODE, XML_DOCUMENT_TYPE_NODE, XML_ELEMENT_NODE,\\\n" + "XML_COMMENT_NODE",
0, 0);
List<ImportHandleInfo> importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals("wx.xrc", importInfo.get(0).getFromImportStr());
ArrayList<String> lst = new ArrayList<String>();
lst.add("XML_ATTRIBUTE_NODE");
lst.add("XML_CDATA_SECTION_NODE");
lst.add("XML_DOCUMENT_FRAG_NODE");
lst.add("XML_DOCUMENT_TYPE_NODE");
lst.add("XML_ELEMENT_NODE");
lst.add("XML_COMMENT_NODE");
assertEquals(lst, importInfo.get(0).getImportedStr());
}
public void testImportHandleInfo() throws Exception {
ImportHandle importHandle = new ImportHandle(null, "from AAA import BBB", 0, 0);
List<ImportHandleInfo> importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals("AAA", importInfo.get(0).getFromImportStr());
ArrayList<String> lst = new ArrayList<String>();
lst.add("BBB");
assertEquals(lst, importInfo.get(0).getImportedStr());
importHandle = new ImportHandle(null, "from AAA import BBB, CCC", 0, 0);
importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals("AAA", importInfo.get(0).getFromImportStr());
lst = new ArrayList<String>();
lst.add("BBB");
lst.add("CCC");
assertEquals(lst, importInfo.get(0).getImportedStr());
importHandle = new ImportHandle(null, "from AAA import BBB, DDD as CCC", 0, 0);
importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals("AAA", importInfo.get(0).getFromImportStr());
lst = new ArrayList<String>();
lst.add("BBB");
lst.add("DDD as CCC");
assertEquals(lst, importInfo.get(0).getImportedStr());
importHandle = new ImportHandle(null, "from AAA import BBB #, DDD as CCC", 0, 0);
importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals("AAA", importInfo.get(0).getFromImportStr());
lst = new ArrayList<String>();
lst.add("BBB");
assertEquals(lst, importInfo.get(0).getImportedStr());
ArrayList<String> comments = new ArrayList<String>();
comments.add("#, DDD as CCC");
assertEquals(comments, importInfo.get(0).getCommentsForImports());
importHandle = new ImportHandle(null, "from AAA.bbb.ccc import BBB", 0, 0);
importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals("AAA.bbb.ccc", importInfo.get(0).getFromImportStr());
lst = new ArrayList<String>();
lst.add("BBB");
assertEquals(lst, importInfo.get(0).getImportedStr());
importHandle = new ImportHandle(null, "from AAA import (BBB, #, DDD as CCC\nKKK)", 0, 0);
importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals("AAA", importInfo.get(0).getFromImportStr());
lst = new ArrayList<String>();
lst.add("BBB");
lst.add("KKK");
comments = new ArrayList<String>();
comments.add("#, DDD as CCC");
comments.add("");
assertEquals(lst, importInfo.get(0).getImportedStr());
assertEquals(comments, importInfo.get(0).getCommentsForImports());
importHandle = new ImportHandle(null, "from .AAA import (BBB, #, DDD as CCC\nKKK)", 0, 1);
importInfo = importHandle.getImportInfo();
assertEquals(1, importInfo.size());
assertEquals(".AAA", importInfo.get(0).getFromImportStr());
lst = new ArrayList<String>();
lst.add("BBB");
lst.add("KKK");
comments = new ArrayList<String>();
comments.add("#, DDD as CCC");
comments.add("");
assertEquals(lst, importInfo.get(0).getImportedStr());
assertEquals(comments, importInfo.get(0).getCommentsForImports());
assertEquals(0, importInfo.get(0).getStartLine());
assertEquals(1, importInfo.get(0).getEndLine());
}
public void testImportMatches() throws Exception {
ImportHandle importHandle = new ImportHandle(null, "from AAA import BBB", 0, 0);
assertFalse(importHandle.contains(new ImportHandle.ImportHandleInfo("from X import BBB")));
assertFalse(importHandle.contains(new ImportHandle.ImportHandleInfo("from XXX import BBB")));
assertFalse(importHandle.contains(new ImportHandle.ImportHandleInfo("from AAA import CCC")));
assertTrue(importHandle.contains(new ImportHandle.ImportHandleInfo("from AAA import BBB")));
importHandle = new ImportHandle(null, "from AAA import BBB;from XXX import YYY", 0, 0);
assertTrue(importHandle.contains(new ImportHandle.ImportHandleInfo("from XXX import YYY")));
}
}