summaryrefslogtreecommitdiff
path: root/src/mailman/commands/docs/remove.rst
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/commands/docs/remove.rst')
-rw-r--r--src/mailman/commands/docs/remove.rst85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/mailman/commands/docs/remove.rst b/src/mailman/commands/docs/remove.rst
new file mode 100644
index 000000000..f0f4e64f6
--- /dev/null
+++ b/src/mailman/commands/docs/remove.rst
@@ -0,0 +1,85 @@
+=========================
+Command line list removal
+=========================
+
+A system administrator can remove mailing lists by the command line.
+::
+
+ >>> create_list('test@example.com')
+ <mailing list "test@example.com" at ...>
+
+ >>> from mailman.interfaces.listmanager import IListManager
+ >>> from zope.component import getUtility
+ >>> list_manager = getUtility(IListManager)
+ >>> list_manager.get('test@example.com')
+ <mailing list "test@example.com" at ...>
+
+ >>> class FakeArgs:
+ ... quiet = False
+ ... archives = False
+ ... listname = ['test@example.com']
+ >>> args = FakeArgs()
+
+ >>> from mailman.commands.cli_lists import Remove
+ >>> command = Remove()
+ >>> command.process(args)
+ Removed list: test@example.com
+ Not removing archives. Reinvoke with -a to remove them.
+
+ >>> print list_manager.get('test@example.com')
+ None
+
+You can also remove lists quietly.
+::
+
+ >>> create_list('test@example.com')
+ <mailing list "test@example.com" at ...>
+
+ >>> args.quiet = True
+ >>> command.process(args)
+
+ >>> print list_manager.get('test@example.com')
+ None
+
+
+Removing archives
+=================
+
+By default 'mailman remove' does not remove a mailing list's archives.
+::
+
+ >>> create_list('test@example.com')
+ <mailing list "test@example.com" at ...>
+
+ # Fake an mbox file for the mailing list.
+ >>> import os
+ >>> def make_mbox(fqdn_listname):
+ ... mbox_dir = os.path.join(
+ ... config.PUBLIC_ARCHIVE_FILE_DIR, fqdn_listname + '.mbox')
+ ... os.makedirs(mbox_dir)
+ ... mbox_file = os.path.join(mbox_dir, fqdn_listname + '.mbox')
+ ... with open(mbox_file, 'w') as fp:
+ ... print >> fp, 'A message'
+ ... assert os.path.exists(mbox_file)
+ ... return mbox_file
+
+ >>> mbox_file = make_mbox('test@example.com')
+ >>> args.quiet = False
+ >>> command.process(args)
+ Removed list: test@example.com
+ Not removing archives. Reinvoke with -a to remove them.
+
+ >>> os.path.exists(mbox_file)
+ True
+
+Even if the mailing list has been deleted, you can still delete the archives
+afterward.
+::
+
+ >>> args.archives = True
+
+ >>> command.process(args)
+ No such list: test@example.com; removing residual archives.
+
+ >>> os.path.exists(mbox_file)
+ False