diff options
Diffstat (limited to 'src/mailman/mta/tests/test_aliases.py')
| -rw-r--r-- | src/mailman/mta/tests/test_aliases.py | 168 |
1 files changed, 123 insertions, 45 deletions
diff --git a/src/mailman/mta/tests/test_aliases.py b/src/mailman/mta/tests/test_aliases.py index d5cea3ecb..b8090c86d 100644 --- a/src/mailman/mta/tests/test_aliases.py +++ b/src/mailman/mta/tests/test_aliases.py @@ -154,15 +154,15 @@ example.com example.com contents = _strip_header(fp.read()) self.assertMultiLineEqual(contents, """\ # Aliases which are visible only in the @example.com domain. -test@example.com lmtp:[127.0.0.1]:9024 -test-bounces@example.com lmtp:[127.0.0.1]:9024 -test-confirm@example.com lmtp:[127.0.0.1]:9024 -test-join@example.com lmtp:[127.0.0.1]:9024 -test-leave@example.com lmtp:[127.0.0.1]:9024 -test-owner@example.com lmtp:[127.0.0.1]:9024 -test-request@example.com lmtp:[127.0.0.1]:9024 -test-subscribe@example.com lmtp:[127.0.0.1]:9024 -test-unsubscribe@example.com lmtp:[127.0.0.1]:9024 +test@example.com lmtp:[127.0.0.1]:9024 +test-bounces@example.com lmtp:[127.0.0.1]:9024 +test-confirm@example.com lmtp:[127.0.0.1]:9024 +test-join@example.com lmtp:[127.0.0.1]:9024 +test-leave@example.com lmtp:[127.0.0.1]:9024 +test-owner@example.com lmtp:[127.0.0.1]:9024 +test-request@example.com lmtp:[127.0.0.1]:9024 +test-subscribe@example.com lmtp:[127.0.0.1]:9024 +test-unsubscribe@example.com lmtp:[127.0.0.1]:9024 """) def test_two_lists(self): @@ -185,25 +185,25 @@ example.com example.com contents = _strip_header(fp.read()) self.assertMultiLineEqual(contents, """\ # Aliases which are visible only in the @example.com domain. -other@example.com lmtp:[127.0.0.1]:9024 -other-bounces@example.com lmtp:[127.0.0.1]:9024 -other-confirm@example.com lmtp:[127.0.0.1]:9024 -other-join@example.com lmtp:[127.0.0.1]:9024 -other-leave@example.com lmtp:[127.0.0.1]:9024 -other-owner@example.com lmtp:[127.0.0.1]:9024 -other-request@example.com lmtp:[127.0.0.1]:9024 -other-subscribe@example.com lmtp:[127.0.0.1]:9024 -other-unsubscribe@example.com lmtp:[127.0.0.1]:9024 +other@example.com lmtp:[127.0.0.1]:9024 +other-bounces@example.com lmtp:[127.0.0.1]:9024 +other-confirm@example.com lmtp:[127.0.0.1]:9024 +other-join@example.com lmtp:[127.0.0.1]:9024 +other-leave@example.com lmtp:[127.0.0.1]:9024 +other-owner@example.com lmtp:[127.0.0.1]:9024 +other-request@example.com lmtp:[127.0.0.1]:9024 +other-subscribe@example.com lmtp:[127.0.0.1]:9024 +other-unsubscribe@example.com lmtp:[127.0.0.1]:9024 -test@example.com lmtp:[127.0.0.1]:9024 -test-bounces@example.com lmtp:[127.0.0.1]:9024 -test-confirm@example.com lmtp:[127.0.0.1]:9024 -test-join@example.com lmtp:[127.0.0.1]:9024 -test-leave@example.com lmtp:[127.0.0.1]:9024 -test-owner@example.com lmtp:[127.0.0.1]:9024 -test-request@example.com lmtp:[127.0.0.1]:9024 -test-subscribe@example.com lmtp:[127.0.0.1]:9024 -test-unsubscribe@example.com lmtp:[127.0.0.1]:9024 +test@example.com lmtp:[127.0.0.1]:9024 +test-bounces@example.com lmtp:[127.0.0.1]:9024 +test-confirm@example.com lmtp:[127.0.0.1]:9024 +test-join@example.com lmtp:[127.0.0.1]:9024 +test-leave@example.com lmtp:[127.0.0.1]:9024 +test-owner@example.com lmtp:[127.0.0.1]:9024 +test-request@example.com lmtp:[127.0.0.1]:9024 +test-subscribe@example.com lmtp:[127.0.0.1]:9024 +test-unsubscribe@example.com lmtp:[127.0.0.1]:9024 """) def test_two_lists_two_domains(self): @@ -229,24 +229,102 @@ example.net example.net contents = _strip_header(fp.read()) self.assertMultiLineEqual(contents, """\ # Aliases which are visible only in the @example.com domain. -test@example.com lmtp:[127.0.0.1]:9024 -test-bounces@example.com lmtp:[127.0.0.1]:9024 -test-confirm@example.com lmtp:[127.0.0.1]:9024 -test-join@example.com lmtp:[127.0.0.1]:9024 -test-leave@example.com lmtp:[127.0.0.1]:9024 -test-owner@example.com lmtp:[127.0.0.1]:9024 -test-request@example.com lmtp:[127.0.0.1]:9024 -test-subscribe@example.com lmtp:[127.0.0.1]:9024 -test-unsubscribe@example.com lmtp:[127.0.0.1]:9024 +test@example.com lmtp:[127.0.0.1]:9024 +test-bounces@example.com lmtp:[127.0.0.1]:9024 +test-confirm@example.com lmtp:[127.0.0.1]:9024 +test-join@example.com lmtp:[127.0.0.1]:9024 +test-leave@example.com lmtp:[127.0.0.1]:9024 +test-owner@example.com lmtp:[127.0.0.1]:9024 +test-request@example.com lmtp:[127.0.0.1]:9024 +test-subscribe@example.com lmtp:[127.0.0.1]:9024 +test-unsubscribe@example.com lmtp:[127.0.0.1]:9024 # Aliases which are visible only in the @example.net domain. -other@example.net lmtp:[127.0.0.1]:9024 -other-bounces@example.net lmtp:[127.0.0.1]:9024 -other-confirm@example.net lmtp:[127.0.0.1]:9024 -other-join@example.net lmtp:[127.0.0.1]:9024 -other-leave@example.net lmtp:[127.0.0.1]:9024 -other-owner@example.net lmtp:[127.0.0.1]:9024 -other-request@example.net lmtp:[127.0.0.1]:9024 -other-subscribe@example.net lmtp:[127.0.0.1]:9024 -other-unsubscribe@example.net lmtp:[127.0.0.1]:9024 +other@example.net lmtp:[127.0.0.1]:9024 +other-bounces@example.net lmtp:[127.0.0.1]:9024 +other-confirm@example.net lmtp:[127.0.0.1]:9024 +other-join@example.net lmtp:[127.0.0.1]:9024 +other-leave@example.net lmtp:[127.0.0.1]:9024 +other-owner@example.net lmtp:[127.0.0.1]:9024 +other-request@example.net lmtp:[127.0.0.1]:9024 +other-subscribe@example.net lmtp:[127.0.0.1]:9024 +other-unsubscribe@example.net lmtp:[127.0.0.1]:9024 +""") + + def test_missing_postmap_command_raises_runtime_errorr(self): + # Changing the postmap command to false will always + # return a non-zero exit code. + self.postfix.postmap_command = 'false' + # Generating postmap hash files will raise a runtimerror. + with self.assertRaises(RuntimeError): + self.postfix.regenerate(self.tempdir) + # Now change the command back to true will make the + # command run normally. + self.postfix.postmap_command = 'true' + self.postfix.regenerate(self.tempdir) + # There should be two files in the tempdir. + self.assertEqual(sorted(os.listdir(self.tempdir)), + ['postfix_domains', 'postfix_lmtp']) + + def test_aliases_regex(self): + # Test aliases generation for regex maps for postfix. + # Set the transport map type to regex. + self.postfix.transport_file_type = 'regex' + self.postfix.regenerate(self.tempdir) + # The domains file just contains the example.com domain. + with open(os.path.join(self.tempdir, 'postfix_domains')) as fp: + contents = _strip_header(fp.read()) + self.assertMultiLineEqual(contents, """\ +/^example\.com$/ example.com +""") + + # the lmtp file contains transport mapping to the lmtp server. + with open(os.path.join(self.tempdir, 'postfix_lmtp')) as fp: + contents = _strip_header(fp.read()) + self.assertMultiLineEqual(contents, """\ +# Aliases which are visible only in the @example.com domain. +/^test@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-bounces@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-confirm@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-join@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-leave@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-owner@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-request@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-subscribe@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-unsubscribe@example\.com$/ lmtp:[127.0.0.1]:9024 +""") + + def test_aliases_regex_with_dots(self): + # Test regex is generated for listnames with multiple dots. + self.postfix.transport_file_type = 'regex' + create_list('test.list.name.dots@example.com') + self.postfix.regenerate(self.tempdir) + with open(os.path.join(self.tempdir, 'postfix_domains')) as fp: + contents = _strip_header(fp.read()) + self.assertMultiLineEqual(contents, """\ +/^example\.com$/ example.com +""") + with open(os.path.join(self.tempdir, 'postfix_lmtp')) as fp: + contents = _strip_header(fp.read()) + self.assertMultiLineEqual(contents, """\ +# Aliases which are visible only in the @example.com domain. +/^test@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-bounces@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-confirm@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-join@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-leave@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-owner@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-request@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-subscribe@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test-unsubscribe@example\.com$/ lmtp:[127.0.0.1]:9024 + +/^test\.list\.name\.dots@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test\.list\.name\.dots-bounces@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test\.list\.name\.dots-confirm@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test\.list\.name\.dots-join@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test\.list\.name\.dots-leave@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test\.list\.name\.dots-owner@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test\.list\.name\.dots-request@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test\.list\.name\.dots-subscribe@example\.com$/ lmtp:[127.0.0.1]:9024 +/^test\.list\.name\.dots-unsubscribe@example\.com$/ lmtp:[127.0.0.1]:9024 """) |
