summaryrefslogtreecommitdiff
path: root/src/mailman/testing/helpers.py
diff options
context:
space:
mode:
authorBarry Warsaw2016-04-08 22:45:36 -0400
committerBarry Warsaw2016-04-08 22:45:36 -0400
commitb0b36f18f86be2c8a8a443bf425ad4114c53c06e (patch)
treeff34562b3f050c8dc4ccd3c82153d667248e2829 /src/mailman/testing/helpers.py
parent29da358eb0c92ba94d417736927060411c4264f8 (diff)
downloadmailman-b0b36f18f86be2c8a8a443bf425ad4114c53c06e.tar.gz
mailman-b0b36f18f86be2c8a8a443bf425ad4114c53c06e.tar.zst
mailman-b0b36f18f86be2c8a8a443bf425ad4114c53c06e.zip
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