summaryrefslogtreecommitdiff
path: root/src/mailman/testing/helpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/testing/helpers.py')
-rw-r--r--src/mailman/testing/helpers.py20
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