diff options
| author | Barry Warsaw | 2014-03-02 17:59:30 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2014-03-02 17:59:30 -0500 |
| commit | b2212b052aa80376e0a42aaee87306dd43fe4608 (patch) | |
| tree | 55d7e246009289457a00e5360839fe1b4661b4c5 /src/mailman/config/tests/test_configuration.py | |
| parent | 703cd02ce0dd891d04d635513af74e24e4a9615c (diff) | |
| download | mailman-b2212b052aa80376e0a42aaee87306dd43fe4608.tar.gz mailman-b2212b052aa80376e0a42aaee87306dd43fe4608.tar.zst mailman-b2212b052aa80376e0a42aaee87306dd43fe4608.zip | |
Diffstat (limited to 'src/mailman/config/tests/test_configuration.py')
| -rw-r--r-- | src/mailman/config/tests/test_configuration.py | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/src/mailman/config/tests/test_configuration.py b/src/mailman/config/tests/test_configuration.py index 3009e384c..3c623c005 100644 --- a/src/mailman/config/tests/test_configuration.py +++ b/src/mailman/config/tests/test_configuration.py @@ -22,19 +22,22 @@ from __future__ import absolute_import, print_function, unicode_literals __metaclass__ = type __all__ = [ 'TestConfiguration', + 'TestConfigurationErrors', 'TestExternal', ] +import os +import tempfile import unittest -from pkg_resources import resource_filename - -from mailman.config.config import external_configuration, load_external +from mailman.config.config import ( + Configuration, external_configuration, load_external) from mailman.interfaces.configuration import ( ConfigurationUpdatedEvent, MissingConfigurationFileError) from mailman.testing.helpers import configuration, event_subscribers from mailman.testing.layers import ConfigLayer +from pkg_resources import resource_filename @@ -99,3 +102,41 @@ class TestExternal(unittest.TestCase): with self.assertRaises(MissingConfigurationFileError) as cm: external_configuration('path:mailman.config.missing') self.assertEqual(cm.exception.path, 'path:mailman.config.missing') + + + +class TestConfigurationErrors(unittest.TestCase): + layer = ConfigLayer + + def test_bad_path_layout_specifier(self): + # Using a [mailman]layout name that doesn't exist is a fatal error. + fd, filename = tempfile.mkstemp() + self.addCleanup(os.remove, filename) + os.close(fd) + with open(filename, 'w') as fp: + print("""\ +[mailman] +layout: nonesuch +""", file=fp) + # Use a fake sys.exit() function that records that it was called, and + # that prevents further processing. + config = Configuration() + with self.assertRaises(SystemExit) as cm: + config.load(filename) + self.assertEqual(cm.exception.args, (1,)) + + def test_path_expansion_infloop(self): + # A path expansion never completes because it references a + # non-existent substitution variable. + fd, filename = tempfile.mkstemp() + self.addCleanup(os.remove, filename) + os.close(fd) + with open(filename, 'w') as fp: + print("""\ +[paths.dev] +log_dir: $nopath/log_dir +""", file=fp) + config = Configuration() + with self.assertRaises(SystemExit) as cm: + config.load(filename) + self.assertEqual(cm.exception.args, (1,)) |
