2222import com .jetbrains .python .psi .*;
2323import com .jetbrains .python .psi .types .TypeEvalContext ;
2424import consulo .annotation .access .RequiredReadAction ;
25- import consulo .annotation . access . RequiredWriteAction ;
25+ import consulo .application . ReadAction ;
2626import consulo .execution .action .ConfigurationContext ;
2727import consulo .execution .action .ConfigurationFromContext ;
2828import consulo .execution .action .Location ;
@@ -111,7 +111,6 @@ public boolean isConfigurationFromContext(AbstractPythonTestRunConfiguration con
111111 }
112112
113113 @ Override
114- @ RequiredWriteAction
115114 protected boolean setupConfigurationFromContext (
116115 AbstractPythonTestRunConfiguration configuration ,
117116 ConfigurationContext context ,
@@ -121,7 +120,7 @@ protected boolean setupConfigurationFromContext(
121120 return false ;
122121 }
123122 Location location = context .getLocation ();
124- if (location == null || !isAvailable (location )) {
123+ if (location == null || !ReadAction . compute (() -> isAvailable (location ) )) {
125124 return false ;
126125 }
127126 PsiElement element = location .getPsiElement ();
@@ -160,7 +159,6 @@ protected boolean setupConfigurationFromContext(
160159 return file instanceof PyFile pyFile && isTestFile (pyFile ) && setupConfigurationFromFile (pyFile , configuration );
161160 }
162161
163- @ RequiredWriteAction
164162 private boolean setupConfigurationFromFolder (@ Nonnull PsiDirectory element , @ Nonnull AbstractPythonTestRunConfiguration configuration ) {
165163 VirtualFile virtualFile = element .getVirtualFile ();
166164 if (!isTestFolder (virtualFile , element .getProject ())) {
@@ -176,13 +174,11 @@ private boolean setupConfigurationFromFolder(@Nonnull PsiDirectory element, @Non
176174 return true ;
177175 }
178176
179- @ RequiredWriteAction
180177 private static void setModuleSdk (@ Nonnull PsiElement element , @ Nonnull AbstractPythonTestRunConfiguration configuration ) {
181178 configuration .setUseModuleSdk (true );
182179 configuration .setModule (element .getModule ());
183180 }
184181
185- @ RequiredWriteAction
186182 protected boolean setupConfigurationFromFunction (
187183 @ Nonnull PyFunction pyFunction ,
188184 @ Nonnull AbstractPythonTestRunConfiguration configuration
@@ -200,7 +196,6 @@ protected boolean setupConfigurationFromFunction(
200196 return setupConfigurationScript (configuration , pyFunction );
201197 }
202198
203- @ RequiredWriteAction
204199 protected boolean setupConfigurationFromClass (
205200 @ Nonnull PyClass pyClass ,
206201 @ Nonnull AbstractPythonTestRunConfiguration configuration
@@ -210,7 +205,6 @@ protected boolean setupConfigurationFromClass(
210205 return setupConfigurationScript (configuration , pyClass );
211206 }
212207
213- @ RequiredWriteAction
214208 protected boolean setupConfigurationFromFile (
215209 @ Nonnull PyFile pyFile ,
216210 @ Nonnull AbstractPythonTestRunConfiguration configuration
@@ -219,7 +213,6 @@ protected boolean setupConfigurationFromFile(
219213 return setupConfigurationScript (configuration , pyFile );
220214 }
221215
222- @ RequiredWriteAction
223216 protected static boolean setupConfigurationScript (
224217 @ Nonnull AbstractPythonTestRunConfiguration cfg ,
225218 @ Nonnull PyElement element
@@ -259,6 +252,7 @@ protected boolean isTestFolder(@Nonnull VirtualFile virtualFile, @Nonnull Projec
259252 return name .toLowerCase ().contains ("test" ) || roots .contains (virtualFile );
260253 }
261254
255+ @ RequiredReadAction
262256 protected boolean isAvailable (@ Nonnull Location location ) {
263257 return false ;
264258 }
0 commit comments