@@ -205,11 +205,30 @@ def tests(session: Session) -> None:
205
205
session .warn (install_warning )
206
206
207
207
# finally, install the dependencies, optional dependencies and the package itself
208
- try :
209
- session .run_always ("poetry" , "install" , "--with" , "test" , * extras_args , external = True , silent = False )
210
- except Exception as error :
211
- session .warn (install_warning )
212
- raise error
208
+ poetry_env = Path (session .run_always ("poetry" , "env" , "info" , "--executable" , silent = not verbose , external = True ).splitlines ()[- 1 ].strip ()).resolve ()
209
+ session_env = Path (session .bin , "python/" ).resolve ()
210
+ assert poetry_env .exists (), f"{ poetry_env = } does not exist"
211
+ assert session_env .exists (), f"{ session_env = } does not exist"
212
+ # if the poetry virtualenv is not set to the session env, use requirements file export instead of Poetry install
213
+ if poetry_env != session_env :
214
+ session .warn (f"Poetry env ({ str (poetry_env )} ) is not session env ({ str (session_env )} ), falling back to install via requirements export" )
215
+ requirements_file = Path (f"tmp_test_requirements_{ session .name } .txt" )
216
+ if requirements_file .exists ():
217
+ requirements_file .unlink ()
218
+ if verbose :
219
+ print (session .run_always ('conda' , 'list' ))
220
+ session .run_always ('poetry' , 'export' , '-f' , 'requirements.txt' , '-o' , requirements_file .name , '--with=test' , '--without-hashes' , * extras_args , external = True , silent = not verbose )
221
+ session .install ('-r' , requirements_file .name )
222
+ session .install ('.' )
223
+ requirements_file .unlink ()
224
+ if verbose :
225
+ print (session .run_always ('conda' , 'list' ))
226
+ else :
227
+ try :
228
+ session .run_always ("poetry" , "install" , "--with" , "test" , * extras_args , external = True , silent = False )
229
+ except Exception as error :
230
+ session .warn (install_warning )
231
+ raise error
213
232
214
233
# if applicable, install the dependencies for additional tests
215
234
if install_additional_tests and install_cuda :
0 commit comments