summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2017-08-21 21:12:31 +0200
committerJ08nY2017-08-21 21:12:31 +0200
commitc21e5e0e2841e1d516ffe75717b10c09ef3489ba (patch)
tree21773c460afda1b064013be6a12046deaf17fc62
parent006e63dd02ae03e4e0d29405ba7b8c530a20fc9c (diff)
downloadmailman-pgp-c21e5e0e2841e1d516ffe75717b10c09ef3489ba.tar.gz
mailman-pgp-c21e5e0e2841e1d516ffe75717b10c09ef3489ba.tar.zst
mailman-pgp-c21e5e0e2841e1d516ffe75717b10c09ef3489ba.zip
-rw-r--r--src/mailman_pgp/archivers/tests/test_maildir.py12
-rw-r--r--src/mailman_pgp/archivers/tests/test_mbox.py12
-rw-r--r--src/mailman_pgp/model/tests/test_list.py13
-rw-r--r--src/mailman_pgp/rules/signature.py2
-rw-r--r--src/mailman_pgp/rules/tests/test_signature.py2
-rw-r--r--src/mailman_pgp/styles/tests/test_base.py6
6 files changed, 26 insertions, 21 deletions
diff --git a/src/mailman_pgp/archivers/tests/test_maildir.py b/src/mailman_pgp/archivers/tests/test_maildir.py
index 25fc194..876b2c9 100644
--- a/src/mailman_pgp/archivers/tests/test_maildir.py
+++ b/src/mailman_pgp/archivers/tests/test_maildir.py
@@ -18,6 +18,7 @@
""""""
import os
import unittest
+from contextlib import ExitStack
from mailbox import Maildir
from tempfile import TemporaryDirectory
@@ -25,10 +26,10 @@ from mailman.app.lifecycle import create_list
from mailman.testing.helpers import specialized_message_from_string as mfs
from mailman_pgp.archivers.local_maildir import LocalMaildirArchiver
-from mailman_pgp.config import config
from mailman_pgp.database import mm_transaction
from mailman_pgp.model.list import PGPMailingList
from mailman_pgp.pgp.mime import MIMEWrapper
+from mailman_pgp.testing.config import patch_config
from mailman_pgp.testing.layers import PGPConfigLayer
from mailman_pgp.testing.pgp import load_key
@@ -65,10 +66,11 @@ but the water deserves to be swum.
LocalMaildirArchiver.archive_message(ordinary, self.msg)
def test_archives(self):
- with TemporaryDirectory() as maildir_dir:
- self.addCleanup(config.set, 'archiving', 'maildir_dir',
- config.get('archiving', 'maildir_dir'))
- config.set('archiving', 'maildir_dir', maildir_dir)
+ with ExitStack() as res:
+ maildir_dir = res.enter_context(TemporaryDirectory())
+ res.enter_context(patch_config('archiving', 'maildir_dir',
+ maildir_dir))
+
LocalMaildirArchiver.archive_message(self.mlist, self.msg)
list_dir = os.path.join(maildir_dir, self.mlist.fqdn_listname)
diff --git a/src/mailman_pgp/archivers/tests/test_mbox.py b/src/mailman_pgp/archivers/tests/test_mbox.py
index 50b7113..8af2b77 100644
--- a/src/mailman_pgp/archivers/tests/test_mbox.py
+++ b/src/mailman_pgp/archivers/tests/test_mbox.py
@@ -18,6 +18,7 @@
""""""
import os
import unittest
+from contextlib import ExitStack
from mailbox import mbox
from tempfile import TemporaryDirectory
@@ -25,10 +26,10 @@ from mailman.app.lifecycle import create_list
from mailman.testing.helpers import specialized_message_from_string as mfs
from mailman_pgp.archivers.local_mbox import LocalMailboxArchiver
-from mailman_pgp.config import config
from mailman_pgp.database import mm_transaction
from mailman_pgp.model.list import PGPMailingList
from mailman_pgp.pgp.mime import MIMEWrapper
+from mailman_pgp.testing.config import patch_config
from mailman_pgp.testing.layers import PGPConfigLayer
from mailman_pgp.testing.pgp import load_key
@@ -65,10 +66,11 @@ but the water deserves to be swum.
LocalMailboxArchiver.archive_message(ordinary, self.msg)
def test_archives(self):
- with TemporaryDirectory() as mailbox_dir:
- self.addCleanup(config.set, 'archiving', 'mailbox_dir',
- config.get('archiving', 'mailbox_dir'))
- config.set('archiving', 'mailbox_dir', mailbox_dir)
+ with ExitStack() as res:
+ mailbox_dir = res.enter_context(TemporaryDirectory())
+ res.enter_context(patch_config('archiving', 'mailbox_dir',
+ mailbox_dir))
+
LocalMailboxArchiver.archive_message(self.mlist, self.msg)
list_dir = os.path.join(mailbox_dir, self.mlist.fqdn_listname)
diff --git a/src/mailman_pgp/model/tests/test_list.py b/src/mailman_pgp/model/tests/test_list.py
index 9bb0a4e..eb43355 100644
--- a/src/mailman_pgp/model/tests/test_list.py
+++ b/src/mailman_pgp/model/tests/test_list.py
@@ -16,6 +16,8 @@
# this program. If not, see <http://www.gnu.org/licenses/>.
""""""
+import shutil
+import unittest
from os.path import exists
from unittest import TestCase
@@ -23,9 +25,9 @@ from mailman.app.lifecycle import create_list
from mailman.interfaces.listmanager import IListManager
from zope.component import getUtility
-from mailman_pgp.config import config
from mailman_pgp.database import mm_transaction
from mailman_pgp.model.list import PGPMailingList
+from mailman_pgp.testing.config import patch_config
from mailman_pgp.testing.layers import PGPConfigLayer
from mailman_pgp.testing.pgp import load_key
@@ -50,9 +52,11 @@ class TestPGPMailingList(TestCase):
getUtility(IListManager).delete(self.mlist)
self.assertFalse(exists(key_path))
+ @patch_config('keypairs', 'shred_command', 'shred')
+ @unittest.skipIf(shutil.which('shred') is None, 'No shred command.')
def test_shred_key_command(self):
- self.addCleanup(config.set, 'keypairs', 'shred_command', '')
- config.set('keypairs', 'shred_command', 'shred')
+ # This really just hopes that the test env has some coreutils, that
+ # provide `shred` command with this behaviour.
key_path = PGPMailingList.for_list(self.mlist).key_path
with open(key_path, 'rb') as f:
before = f.read()
@@ -61,9 +65,8 @@ class TestPGPMailingList(TestCase):
after = f.read()
self.assertNotEqual(before, after)
+ @patch_config('keypairs', 'shred', 'no')
def test_delete_key(self):
- self.addCleanup(config.set, 'keypairs', 'shred', 'yes')
- config.set('keypairs', 'shred', 'no')
key_path = PGPMailingList.for_list(self.mlist).key_path
getUtility(IListManager).delete(self.mlist)
self.assertFalse(exists(key_path))
diff --git a/src/mailman_pgp/rules/signature.py b/src/mailman_pgp/rules/signature.py
index 2e1728b..0805d1b 100644
--- a/src/mailman_pgp/rules/signature.py
+++ b/src/mailman_pgp/rules/signature.py
@@ -36,7 +36,7 @@ from mailman_pgp.model.sighash import PGPSigHash
from mailman_pgp.pgp.wrapper import PGPWrapper
from mailman_pgp.utils.email import get_email
from mailman_pgp.utils.moderation import record_action
-from mailman_pgp.utils.pgp import hashes, verifies, expired, revoked
+from mailman_pgp.utils.pgp import expired, hashes, revoked, verifies
@public
diff --git a/src/mailman_pgp/rules/tests/test_signature.py b/src/mailman_pgp/rules/tests/test_signature.py
index 45dbf21..73dbb6c 100644
--- a/src/mailman_pgp/rules/tests/test_signature.py
+++ b/src/mailman_pgp/rules/tests/test_signature.py
@@ -32,7 +32,7 @@ from zope.component import getUtility
from zope.event import notify
from mailman_pgp.chains.default import PGPChain
-from mailman_pgp.config import mm_config, config
+from mailman_pgp.config import mm_config
from mailman_pgp.database import mm_transaction, transaction
from mailman_pgp.model.address import PGPAddress
from mailman_pgp.model.list import PGPMailingList
diff --git a/src/mailman_pgp/styles/tests/test_base.py b/src/mailman_pgp/styles/tests/test_base.py
index 6bb56f7..50d9981 100644
--- a/src/mailman_pgp/styles/tests/test_base.py
+++ b/src/mailman_pgp/styles/tests/test_base.py
@@ -18,9 +18,9 @@ from unittest import TestCase
from mailman.app.lifecycle import create_list
-from mailman_pgp.config import config
from mailman_pgp.model.list import PGPMailingList
from mailman_pgp.styles.base import PGPStyle
+from mailman_pgp.testing.config import patch_config
from mailman_pgp.testing.layers import PGPConfigLayer
@@ -44,10 +44,8 @@ class TestBaseStyle(TestCase):
# Test another apply doesn't fail
base_style.apply(mlist)
+ @patch_config('keypairs', 'autogenerate', 'no')
def test_autogenerate(self):
- self.addCleanup(config.set, 'keypairs', 'autogenerate', 'no')
- config.set('keypairs', 'autogenerate', 'yes')
-
# Create with default style.
mlist = create_list('test@example.com')
# Manually apply base PGPStyle.