diff options
| author | bwarsaw | 2006-07-08 18:02:57 +0000 |
|---|---|---|
| committer | bwarsaw | 2006-07-08 18:02:57 +0000 |
| commit | c6bd2024ebcb3982bb07c3fed1bb13d7ded332bd (patch) | |
| tree | f94e3945ec69c35be0bad5abeaa71df53b535351 /Mailman/testing/base.py | |
| parent | f321ff8f419284c32f7eea4e06c83212bccef6b0 (diff) | |
| download | mailman-c6bd2024ebcb3982bb07c3fed1bb13d7ded332bd.tar.gz mailman-c6bd2024ebcb3982bb07c3fed1bb13d7ded332bd.tar.zst mailman-c6bd2024ebcb3982bb07c3fed1bb13d7ded332bd.zip | |
Fix some buglets with virtual domain support and repair unit tests broken by
this change. More unit tests should be added.
misc/sitelist.cfg is removed -- this is an ex-site list.
MailList.GetNoReplyEmail() -> MailList.no_reply_address (property)
UserNotification._enqueue(), OwnerNotification._enqueue(): when queing the
message to the virgin queue, be sure to use the fully qualified (i.e. posting)
address for the list.
In the MTA modules, be sure to set up the target of the mail commands as the
fqdn listname because otherwise we can't find the correct list. This needs
some tweaking/testing for Postfix's virtual domain support.
MailList.Load() has to grow an optional argument specifying the fqdn
listname. The problem is that in some situations, we can't calculate that
because we don't know _internal_name, so it has to be passed in. This is
mostly the case in the MailList ctor where a Load hasn't happened yet. For
backward compatibility though, if it's not passed in, just use
mlist.fqdn_listname.
Diffstat (limited to 'Mailman/testing/base.py')
| -rw-r--r-- | Mailman/testing/base.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/Mailman/testing/base.py b/Mailman/testing/base.py index 76c7243af..589ab0abb 100644 --- a/Mailman/testing/base.py +++ b/Mailman/testing/base.py @@ -18,8 +18,10 @@ """Test base class which handles creating and deleting a test list.""" import os +import stat import shutil import difflib +import tempfile import unittest from cStringIO import StringIO @@ -29,10 +31,17 @@ from Mailman import Utils from Mailman.configuration import config NL = '\n' +PERMISSIONS = stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH class TestBase(unittest.TestCase): + def _configure(self, fp): + print >> fp, 'add_domain("example.com", "www.example.com")' + # Only add this domain once to the current process + if 'example.com' not in config.domains: + config.add_domain('example.com', 'www.example.com') + def ndiffAssertEqual(self, first, second): """Like failUnlessEqual except use ndiff for readable output.""" if first <> second: @@ -44,17 +53,25 @@ class TestBase(unittest.TestCase): raise self.failureException(fp.getvalue()) def setUp(self): + # Write a temporary configuration file, but allow for subclasses to + # add additional data. + fd, self._config = tempfile.mkstemp(suffix='.cfg') + os.close(fd) + fp = open(self._config, 'w') + try: + self._configure(fp) + finally: + fp.close() + os.chmod(self._config, PERMISSIONS) mlist = MailList.MailList() - mlist.Create('_xtest', 'test@dom.ain', 'xxxxx') - mlist.host_name = 'dom.ain' - mlist.web_page_url = 'http://www.dom.ain/mailman/' + mlist.Create('_xtest@example.com', 'owner@example.com', 'xxxxx') mlist.Save() # This leaves the list in a locked state self._mlist = mlist def tearDown(self): self._mlist.Unlock() - listname = self._mlist.internal_name() + listname = self._mlist.fqdn_listname for dirtmpl in ['lists/%s', 'archives/private/%s', 'archives/private/%s.mbox', |
