summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-03-22 16:30:23 +0000
committerGerrit Code Review <review@openstack.org>2013-03-22 16:30:23 +0000
commit3b8db7e5072c7fd04b2bad637a5718f07d6f967c (patch)
treebed911f707d0d43035e55d804dc290a031325593 /tests
parent727d784a0f732082497928798247f0e7ad4c0361 (diff)
parentc87e615bf98981219c2f92242f6ff9ee6753d786 (diff)
downloadoslo-3b8db7e5072c7fd04b2bad637a5718f07d6f967c.tar.gz
oslo-3b8db7e5072c7fd04b2bad637a5718f07d6f967c.tar.xz
oslo-3b8db7e5072c7fd04b2bad637a5718f07d6f967c.zip
Merge "Gracefully handle errors in logging config files"
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/test_log.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/unit/test_log.py b/tests/unit/test_log.py
index 6a1eeb2..4241e2e 100644
--- a/tests/unit/test_log.py
+++ b/tests/unit/test_log.py
@@ -1,7 +1,9 @@
import cStringIO
import logging
+import os
import StringIO
import sys
+import tempfile
from oslo.config import cfg
@@ -377,3 +379,49 @@ class LogConfigOptsTestCase(test_utils.BaseTestCase):
logdir = '/some/other/path/'
CONF(['--logdir', logdir])
self.assertEquals(CONF.log_dir, logdir)
+
+
+class LogConfigTestCase(test_utils.BaseTestCase):
+
+ minimal_config = """[loggers]
+keys=root
+
+[formatters]
+keys=
+
+[handlers]
+keys=
+
+[logger_root]
+handlers=
+"""
+
+ def _create_tempfile(self, basename, contents, ext='.conf'):
+ (fd, path) = tempfile.mkstemp(prefix=basename, suffix=ext)
+ try:
+ os.write(fd, contents)
+ finally:
+ os.close(fd)
+ return path
+
+ def test_log_config_ok(self):
+ log_config = self._create_tempfile('logging', self.minimal_config)
+ self.config(log_config=log_config)
+ log.setup('test_log_config')
+
+ def test_log_config_not_exist(self):
+ log_config = self._create_tempfile('logging', self.minimal_config)
+ os.remove(log_config)
+ self.config(log_config=log_config)
+ self.assertRaises(log.LogConfigError, log.setup, 'test_log_config')
+
+ def test_log_config_invalid(self):
+ log_config = self._create_tempfile('logging', self.minimal_config[5:])
+ self.config(log_config=log_config)
+ self.assertRaises(log.LogConfigError, log.setup, 'test_log_config')
+
+ def test_log_config_unreadable(self):
+ log_config = self._create_tempfile('logging', self.minimal_config)
+ os.chmod(log_config, 0)
+ self.config(log_config=log_config)
+ self.assertRaises(log.LogConfigError, log.setup, 'test_log_config')