diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2020-09-14 16:32:39 -0700 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2020-09-17 11:26:50 +0000 |
commit | 80ec7ec6810dfd8b8bf84f089d59b9320b6da36c (patch) | |
tree | 49b005d6e1e58f69a3d938be2afedb9f7a20ac64 /run_unittests.py | |
parent | 807f88739ebfa002c9a0b9acd3e24c9610fb02a2 (diff) | |
download | meson-80ec7ec6810dfd8b8bf84f089d59b9320b6da36c.zip meson-80ec7ec6810dfd8b8bf84f089d59b9320b6da36c.tar.gz meson-80ec7ec6810dfd8b8bf84f089d59b9320b6da36c.tar.bz2 |
tests: Make monkey patching smarter
There are two problems here. The first is that we're doing manual monkey
patching which is fragile and verbose, when unittest.mock is designed
specifically to solve this exact problem. The second is that we're
monkey patching os.environ at two different levels with the same
information. So let's only do it once.
Diffstat (limited to 'run_unittests.py')
-rwxr-xr-x | run_unittests.py | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/run_unittests.py b/run_unittests.py index 0bcf617..da0bf50 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -1657,13 +1657,7 @@ class BasePlatformTests(unittest.TestCase): self.privatedir = os.path.join(self.builddir, 'meson-private') if inprocess: try: - if override_envvars is not None: - old_envvars = os.environ.copy() - os.environ.update(override_envvars) - (returncode, out, err) = run_configure_inprocess(self.meson_args + args + extra_args) - if override_envvars is not None: - os.environ.clear() - os.environ.update(old_envvars) + (returncode, out, err) = run_configure_inprocess(self.meson_args + args + extra_args, override_envvars) if 'MESON_SKIP_TEST' in out: raise unittest.SkipTest('Project requested skipping.') if returncode != 0: @@ -1707,15 +1701,8 @@ class BasePlatformTests(unittest.TestCase): if not inprocess: self._run(self.test_command, workdir=self.builddir, override_envvars=override_envvars) else: - if override_envvars is not None: - old_envvars = os.environ.copy() - os.environ.update(override_envvars) - try: + with mock.patch.dict(os.environ, override_envvars): run_mtest_inprocess(['-C', self.builddir]) - finally: - if override_envvars is not None: - os.environ.clear() - os.environ.update(old_envvars) def install(self, *, use_destdir=True, override_envvars=None): if self.backend is not Backend.ninja: |