diff options
| author | Barry Warsaw | 2011-01-31 16:54:36 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2011-01-31 16:54:36 -0500 |
| commit | 04d823986623a81325203a6e682cb8a465d09591 (patch) | |
| tree | eb690bd00936344dec406c52f232ee8b31d4e8db /src/mailman/testing/helpers.py | |
| parent | d0112b5dc950b8d0180997b6e6dc71bd66af1ee8 (diff) | |
| download | mailman-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.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() + |
