diff options
| author | Barry Warsaw | 2011-04-10 18:03:37 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2011-04-10 18:03:37 -0400 |
| commit | 37038a683cd909438a6dee43beb9b258ef4e4313 (patch) | |
| tree | df50eabfcc890f01203d90c453dc1b1dbde65d2c /src/mailman/testing/helpers.py | |
| parent | cce9729cac32b6c5fe2acc77b2bfb6b7c545711f (diff) | |
| parent | ef3a4a87e2c0f4b640e31afc4828d2edbd005846 (diff) | |
| download | mailman-37038a683cd909438a6dee43beb9b258ef4e4313.tar.gz mailman-37038a683cd909438a6dee43beb9b258ef4e4313.tar.zst mailman-37038a683cd909438a6dee43beb9b258ef4e4313.zip | |
Trunk merge
Diffstat (limited to 'src/mailman/testing/helpers.py')
| -rw-r--r-- | src/mailman/testing/helpers.py | 30 |
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() + |
