// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 Ġ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 . env . python . types hed Ċ Ċ import Ġcom . intellij . test Framework . Ed t TestUtil Ċ import Ġcom . intellij . test Framework . Test Application Manager Ċ import Ġcom . intellij . util . Throwable Runnable Ċ import Ġcom . jetbrains . python . code Insight . typing . Py Type S hed Ċ import Ġcom . jetbrains . python . ins pe ctions . Py Type Checker Inspection Ċ import Ġcom . jetbrains . python . ins pe ctions . un resolved Reference . Py Un resolved References Inspection Ċ import Ġcom . jetbrains . python . sdk . Python Sdk Util Ċ import Ġjunit . framework . TestCase Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . Parameterized Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* Ġ@ author Ġvlan Ċ Ġ*/ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠPy Type S hed Stub s Test ( path : ĠString , Ġsdk Path : ĠString ) Ġ: ĠPy Type S hed TestCase ( path , Ġsdk Path ) Ġ{ ĊĠ Ġ@ Test ĊĠ Ġfun Ġtest () Ġ{ ĊĠĠĠ ĠE dt TestUtil . run In Ed t And Wait ( Throwable Runnable Ġ{ ĊĠĠĠĠĠ Ġval Ġtype S hed Path Ġ= ĠPy Type S hed . directory Path Ġ?: Ġreturn @ Throwable Runnable ĊĠĠĠĠĠ Ġval Ġimport able Path Ġ= Ġpath . split ("/ "). drop ( 2 ). join ToString ("/") ĊĠĠĠĠĠ Ġfixture ?. copy File To Project ("$ type S hed Path /$ path ", Ġimport able Path ) ĊĠĠĠĠĠ Ġfixture ?. configure From Temp Project File ( import able Path ) ĊĠĠĠĠĠ Ġfixture ?. enable Ins pe ctions ( Py Un resolved References Inspection :: class . java ) ĊĠĠĠĠĠ Ġfixture ?. enable Ins pe ctions ( Py Type Checker Inspection :: class . java ) ĊĠĠĠĠĠ Ġfixture ?. check Highlighting ( true , Ġfalse , Ġtrue ) ĊĠĠĠĠĠ Ġval Ġmodule Sdk Ġ= ĠPython Sdk Util . find Python Sdk ( fixture ?. module ) ĊĠĠĠĠĠ ĠTestCase . assertNotNull ( module Sdk ) ĊĠĠĠ Ġ}) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Parameterized . Parameters ( name Ġ= Ġ"{ 0 }: Ġ{ 1 }") ĊĠĠĠ Ġ@ Jvm Static Ġfun Ġparams (): ĠList < Array < Any >> Ġ{ ĊĠĠĠĠĠ ĠTest Application Manager . getInstance () ĊĠĠĠĠĠ Ġval Ġtype S hed Path Ġ= ĠPy Type S hed . directory Path Ġ?: Ġreturn Ġempty List () ĊĠĠĠĠĠ Ġval Ġtype S hed File Ġ= ĠFile ( type S hed Path ) ĊĠĠĠĠĠ Ġreturn Ġget Sdk Paths () ĊĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġsdk Path Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġval Ġlevel Ġ= Ġget Language Level ( sdk Path ) Ġ?: Ġreturn @ flatMap Ġempty Sequence < Array < Any >>() ĊĠĠĠĠĠĠĠĠĠ ĠPy Type S hed . find Roots For Language Level ( level ). as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġroot : ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ("$ type S hed Path /$ root "). walk () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . isFile Ġ&& Ġit . extension Ġ== Ġ" py i " Ġ&& Ġ" third _ party " Ġ! in Ġit . absolute Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠarrayOf < Any >( it . relative To ( type S hed File ). toString (), Ġsdk Path ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ