From 61dcbf0409ef36227201dd23295ffba815dd14d0 Mon Sep 17 00:00:00 2001 From: Dmitry Cheryasov Date: Thu, 23 Sep 2010 13:09:54 +0300 Subject: [PATCH] Test resolution collision (submodule vs __init__.py) --- .../moduleClassCollision/ModuleClassCollision.py | 6 ++++++ .../resolve/multiFile/moduleClassCollision/boo.py | 5 +++++ .../moduleValueCollision/ModuleValueCollision.py | 4 ++++ .../resolve/multiFile/moduleValueCollision/boo.py | 1 + .../jetbrains/python/PyMultiFileResolveTest.java | 13 +++++++++++++ 5 files changed, 29 insertions(+) create mode 100644 python/testData/resolve/multiFile/moduleClassCollision/ModuleClassCollision.py create mode 100644 python/testData/resolve/multiFile/moduleClassCollision/boo.py create mode 100644 python/testData/resolve/multiFile/moduleValueCollision/ModuleValueCollision.py create mode 100644 python/testData/resolve/multiFile/moduleValueCollision/boo.py diff --git a/python/testData/resolve/multiFile/moduleClassCollision/ModuleClassCollision.py b/python/testData/resolve/multiFile/moduleClassCollision/ModuleClassCollision.py new file mode 100644 index 000000000000..3e836b639afb --- /dev/null +++ b/python/testData/resolve/multiFile/moduleClassCollision/ModuleClassCollision.py @@ -0,0 +1,6 @@ +# here we export boo() and not module boo +from boo import boo + +b = boo() +# + diff --git a/python/testData/resolve/multiFile/moduleClassCollision/boo.py b/python/testData/resolve/multiFile/moduleClassCollision/boo.py new file mode 100644 index 000000000000..5e98e8f24a7f --- /dev/null +++ b/python/testData/resolve/multiFile/moduleClassCollision/boo.py @@ -0,0 +1,5 @@ +# the typical way to provide a default implementation; +# see curses.has_key() +class boo(object): + pass + diff --git a/python/testData/resolve/multiFile/moduleValueCollision/ModuleValueCollision.py b/python/testData/resolve/multiFile/moduleValueCollision/ModuleValueCollision.py new file mode 100644 index 000000000000..bcd136150eb7 --- /dev/null +++ b/python/testData/resolve/multiFile/moduleValueCollision/ModuleValueCollision.py @@ -0,0 +1,4 @@ +# we import a value +from boo import BOO +print(BOO) +# diff --git a/python/testData/resolve/multiFile/moduleValueCollision/boo.py b/python/testData/resolve/multiFile/moduleValueCollision/boo.py new file mode 100644 index 000000000000..2226ca8326e7 --- /dev/null +++ b/python/testData/resolve/multiFile/moduleValueCollision/boo.py @@ -0,0 +1 @@ +BOO = "only kidding" diff --git a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java index ba55773b07d5..361860b9fa6d 100644 --- a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java +++ b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java @@ -131,6 +131,19 @@ public class PyMultiFileResolveTest extends PyResolveTestCase { assertEquals("silicate", ((PyStringLiteralExpression)value).getStringValue()); } + public void testModuleValueCollision() throws Exception { + PsiElement element = doResolve(); + assertTrue(element instanceof PyTargetExpression); + PsiElement value = ((PyTargetExpression)element).findAssignedValue(); + assertEquals("only kidding", ((PyStringLiteralExpression)value).getStringValue()); + } + + public void testModuleClassCollision() throws Exception { + PsiElement element = doResolve(); + assertTrue(element instanceof PyClass); + assertEquals("boo", ((PyClass)element).getName()); + } + public void testDirectoryVsClass() throws Exception { assertResolvesTo(PyClass.class, "Context"); }