@@ -516,6 +516,10 @@ def __init__(self, request, tmpdir_factory):
516
516
# Discard outer pytest options.
517
517
mp .delenv ("PYTEST_ADDOPTS" , raising = False )
518
518
519
+ # Environment (updates) for inner runs.
520
+ tmphome = str (self .tmpdir )
521
+ self ._env_run_update = {"HOME" : tmphome , "USERPROFILE" : tmphome }
522
+
519
523
def __repr__ (self ):
520
524
return "<Testdir %r>" % (self .tmpdir ,)
521
525
@@ -812,8 +816,8 @@ def inline_run(self, *args, **kwargs):
812
816
try :
813
817
# Do not load user config (during runs only).
814
818
mp_run = MonkeyPatch ()
815
- mp_run . setenv ( "HOME" , str ( self .tmpdir ))
816
- mp_run .setenv ("USERPROFILE" , str ( self . tmpdir ) )
819
+ for k , v in self ._env_run_update . items ():
820
+ mp_run .setenv (k , v )
817
821
finalizers .append (mp_run .undo )
818
822
819
823
# When running pytest inline any plugins active in the main test
@@ -1053,9 +1057,7 @@ def popen(
1053
1057
env ["PYTHONPATH" ] = os .pathsep .join (
1054
1058
filter (None , [os .getcwd (), env .get ("PYTHONPATH" , "" )])
1055
1059
)
1056
- # Do not load user config.
1057
- env ["HOME" ] = str (self .tmpdir )
1058
- env ["USERPROFILE" ] = env ["HOME" ]
1060
+ env .update (self ._env_run_update )
1059
1061
kw ["env" ] = env
1060
1062
1061
1063
if stdin is Testdir .CLOSE_STDIN :
@@ -1244,8 +1246,7 @@ def spawn(self, cmd, expect_timeout=10.0):
1244
1246
1245
1247
# Do not load user config.
1246
1248
env = os .environ .copy ()
1247
- env ["HOME" ] = str (self .tmpdir )
1248
- env ["USERPROFILE" ] = env ["HOME" ]
1249
+ env .update (self ._env_run_update )
1249
1250
1250
1251
child = pexpect .spawn (cmd , logfile = logfile , env = env )
1251
1252
self .request .addfinalizer (logfile .close )
0 commit comments