diff options
Diffstat (limited to 'src/mailman/testing')
| -rw-r--r-- | src/mailman/testing/helpers.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mailman/testing/helpers.py b/src/mailman/testing/helpers.py index cb5bb8d28..3edd66479 100644 --- a/src/mailman/testing/helpers.py +++ b/src/mailman/testing/helpers.py @@ -550,3 +550,23 @@ def set_preferred(user): preferred.verified_on = now() user.preferred_address = preferred return preferred + + +@public +@contextmanager +def hackenv(envar, new_value): + """Hack the environment temporarily, then reset it.""" + old_value = os.getenv(envar) + if new_value is None: + if envar in os.environ: + del os.environ[envar] + else: + os.environ[envar] = new_value + try: + yield + finally: + if old_value is None: + if envar in os.environ: + del os.environ[envar] + else: + os.environ[envar] = old_value |
