summaryrefslogtreecommitdiff
path: root/src/mailman/testing/helpers.py
diff options
context:
space:
mode:
authorBarry Warsaw2011-01-31 16:54:36 -0500
committerBarry Warsaw2011-01-31 16:54:36 -0500
commit04d823986623a81325203a6e682cb8a465d09591 (patch)
treeeb690bd00936344dec406c52f232ee8b31d4e8db /src/mailman/testing/helpers.py
parentd0112b5dc950b8d0180997b6e6dc71bd66af1ee8 (diff)
downloadmailman-04d823986623a81325203a6e682cb8a465d09591.tar.gz
mailman-04d823986623a81325203a6e682cb8a465d09591.tar.zst
mailman-04d823986623a81325203a6e682cb8a465d09591.zip
Diffstat (limited to 'src/mailman/testing/helpers.py')
-rw-r--r--src/mailman/testing/helpers.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/mailman/testing/helpers.py b/src/mailman/testing/helpers.py
index fd2b9ffb3..2ba778813 100644
--- a/src/mailman/testing/helpers.py
+++ b/src/mailman/testing/helpers.py
@@ -26,6 +26,7 @@ __all__ = [
'get_lmtp_client',
'get_queue_messages',
'make_testable_runner',
+ 'reset_the_world',
'subscribe',
'wait_for_webservice',
]
@@ -47,6 +48,7 @@ from zope.component import getUtility
from mailman.bin.master import Loop as Master
from mailman.config import config
from mailman.interfaces.member import MemberRole
+from mailman.interfaces.messages import IMessageStore
from mailman.interfaces.usermanager import IUserManager
from mailman.utilities.mailbox import Mailbox
@@ -277,3 +279,31 @@ def subscribe(mlist, first_name, role=MemberRole.member):
preferred_address = list(person.addresses)[0]
preferred_address.subscribe(mlist, role)
config.db.commit()
+
+
+
+def reset_the_world():
+ """Reset everything:
+
+ * Clear out the database
+ * Remove all residual queue files
+ * Clear the message store
+ * Reset the global style manager
+
+ This should be as thorough a reset of the system as necessary to keep
+ tests isolated.
+ """
+ # Reset the database between tests.
+ config.db._reset()
+ # Remove all residual queue files.
+ for dirpath, dirnames, filenames in os.walk(config.QUEUE_DIR):
+ for filename in filenames:
+ os.remove(os.path.join(dirpath, filename))
+ # Clear out messages in the message store.
+ message_store = getUtility(IMessageStore)
+ for message in message_store.messages:
+ message_store.delete_message(message['message-id'])
+ config.db.commit()
+ # Reset the global style manager.
+ config.style_manager.populate()
+