pytester: factor out testdir._env_run_update
This commit is contained in:
		
							parent
							
								
									f013a5e8c1
								
							
						
					
					
						commit
						ace3a02cd4
					
				|  | @ -508,6 +508,10 @@ class Testdir(object): | |||
|         # Discard outer pytest options. | ||||
|         mp.delenv("PYTEST_ADDOPTS", raising=False) | ||||
| 
 | ||||
|         # Environment (updates) for inner runs. | ||||
|         tmphome = str(self.tmpdir) | ||||
|         self._env_run_update = {"HOME": tmphome, "USERPROFILE": tmphome} | ||||
| 
 | ||||
|     def __repr__(self): | ||||
|         return "<Testdir %r>" % (self.tmpdir,) | ||||
| 
 | ||||
|  | @ -804,8 +808,8 @@ class Testdir(object): | |||
|         try: | ||||
|             # Do not load user config (during runs only). | ||||
|             mp_run = MonkeyPatch() | ||||
|             mp_run.setenv("HOME", str(self.tmpdir)) | ||||
|             mp_run.setenv("USERPROFILE", str(self.tmpdir)) | ||||
|             for k, v in self._env_run_update.items(): | ||||
|                 mp_run.setenv(k, v) | ||||
|             finalizers.append(mp_run.undo) | ||||
| 
 | ||||
|             # When running pytest inline any plugins active in the main test | ||||
|  | @ -1045,9 +1049,7 @@ class Testdir(object): | |||
|         env["PYTHONPATH"] = os.pathsep.join( | ||||
|             filter(None, [os.getcwd(), env.get("PYTHONPATH", "")]) | ||||
|         ) | ||||
|         # Do not load user config. | ||||
|         env["HOME"] = str(self.tmpdir) | ||||
|         env["USERPROFILE"] = env["HOME"] | ||||
|         env.update(self._env_run_update) | ||||
|         kw["env"] = env | ||||
| 
 | ||||
|         if stdin is Testdir.CLOSE_STDIN: | ||||
|  | @ -1236,8 +1238,7 @@ class Testdir(object): | |||
| 
 | ||||
|         # Do not load user config. | ||||
|         env = os.environ.copy() | ||||
|         env["HOME"] = str(self.tmpdir) | ||||
|         env["USERPROFILE"] = env["HOME"] | ||||
|         env.update(self._env_run_update) | ||||
| 
 | ||||
|         child = pexpect.spawn(cmd, logfile=logfile, env=env) | ||||
|         self.request.addfinalizer(logfile.close) | ||||
|  |  | |||
|  | @ -569,12 +569,15 @@ def test_spawn_uses_tmphome(testdir): | |||
|     # Does use HOME only during run. | ||||
|     assert os.environ.get("HOME") != tmphome | ||||
| 
 | ||||
|     testdir._env_run_update["CUSTOMENV"] = "42" | ||||
| 
 | ||||
|     p1 = testdir.makepyfile( | ||||
|         """ | ||||
|         import os | ||||
| 
 | ||||
|         def test(): | ||||
|             assert os.environ["HOME"] == {tmphome!r} | ||||
|             assert os.environ["CUSTOMENV"] == "42" | ||||
|         """.format( | ||||
|             tmphome=tmphome | ||||
|         ) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue