IDEA-CR-60210: test for go to class field for python (PY-15468)

close #1194

GitOrigin-RevId: c735d224f930fef2ae298bf0a055da082daf77e3
This commit is contained in:
Aleksei Kniazev
2020-03-18 13:52:24 +03:00
committed by intellij-monorepo-bot
parent 507318e523
commit a93413a142
2 changed files with 20 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
class MyClass:
some_field = True
def some_fun(self):
pass

View File

@@ -1,11 +1,13 @@
// Copyright 2000-2019 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.ide.util.gotoByName.GotoSymbolModel2
import com.intellij.psi.PsiElement
import com.intellij.testFramework.LightProjectDescriptor
import com.intellij.testFramework.fixtures.CodeInsightTestUtil
import com.jetbrains.python.fixtures.PyTestCase
import com.jetbrains.python.psi.PyFile
import com.jetbrains.python.psi.PyTargetExpression
import com.jetbrains.python.psi.impl.PyGotoDeclarationHandler
import com.jetbrains.python.pyi.PyiFile
@@ -35,6 +37,19 @@ class PyNavigationTest : PyTestCase() {
}
}
fun testGoToClassField() {
myFixture.configureByFile("${getTestName(true)}.py")
val model = GotoSymbolModel2(myFixture.project)
val elements = model.getElementsByName("some_field", false, "")
assertSize(1, elements)
assertInstanceOf(elements.first(), PyTargetExpression::class.java)
val expression = elements.first() as PyTargetExpression
assertEquals("some_field", expression.name)
assertNotNull(expression.containingClass)
assertEquals("MyClass", expression.containingClass?.name)
}
private fun configureByDir(dirName: String) {
myFixture.copyDirectoryToProject(dirName, "")
myFixture.configureByFile("test.py")