summaryrefslogtreecommitdiff
path: root/openstackclient/tests/common/test_context.py
diff options
context:
space:
mode:
authorTerry Howe <terrylhowe@gmail.com>2015-10-30 17:38:42 +0900
committerTerry Howe <terrylhowe@gmail.com>2015-10-30 17:38:42 +0900
commit05800c47227ce7c6918296c33fe0b9a774d14cda (patch)
tree4a9b63dfe1beb9ff665be494bfa136f49c966845 /openstackclient/tests/common/test_context.py
parentbfebac82825a7242ad4e2923e3b71d38b391f08e (diff)
downloadpython-openstackclient-05800c47227ce7c6918296c33fe0b9a774d14cda.tar.gz
Rename context.py to logs.py
At one point this file contained the context for logging, but the reason for its existence is now for logging. Implements: blueprint logging-migration Change-Id: I4ba42bbef97b09d31236ac8c01b6fb23827b8bee
Diffstat (limited to 'openstackclient/tests/common/test_context.py')
-rw-r--r--openstackclient/tests/common/test_context.py202
1 files changed, 0 insertions, 202 deletions
diff --git a/openstackclient/tests/common/test_context.py b/openstackclient/tests/common/test_context.py
deleted file mode 100644
index 55e42851..00000000
--- a/openstackclient/tests/common/test_context.py
+++ /dev/null
@@ -1,202 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-import logging
-import mock
-
-from openstackclient.common import context
-from openstackclient.tests import utils
-
-
-class TestContext(utils.TestCase):
-
- def test_log_level_from_options(self):
- opts = mock.Mock()
- opts.verbose_level = 0
- self.assertEqual(logging.ERROR, context.log_level_from_options(opts))
- opts.verbose_level = 1
- self.assertEqual(logging.WARNING, context.log_level_from_options(opts))
- opts.verbose_level = 2
- self.assertEqual(logging.INFO, context.log_level_from_options(opts))
- opts.verbose_level = 3
- self.assertEqual(logging.DEBUG, context.log_level_from_options(opts))
-
- def test_log_level_from_config(self):
- cfg = {'verbose_level': 0}
- self.assertEqual(logging.ERROR, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 1}
- self.assertEqual(logging.WARNING, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 2}
- self.assertEqual(logging.INFO, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 3}
- self.assertEqual(logging.DEBUG, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 1, 'log_level': 'critical'}
- self.assertEqual(logging.CRITICAL, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 1, 'log_level': 'error'}
- self.assertEqual(logging.ERROR, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 1, 'log_level': 'warning'}
- self.assertEqual(logging.WARNING, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 1, 'log_level': 'info'}
- self.assertEqual(logging.INFO, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 1, 'log_level': 'debug'}
- self.assertEqual(logging.DEBUG, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 1, 'log_level': 'bogus'}
- self.assertEqual(logging.WARNING, context.log_level_from_config(cfg))
- cfg = {'verbose_level': 1, 'log_level': 'info', 'debug': True}
- self.assertEqual(logging.DEBUG, context.log_level_from_config(cfg))
-
- @mock.patch('warnings.simplefilter')
- def test_set_warning_filter(self, simplefilter):
- context.set_warning_filter(logging.ERROR)
- simplefilter.assert_called_with("ignore")
- context.set_warning_filter(logging.WARNING)
- simplefilter.assert_called_with("ignore")
- context.set_warning_filter(logging.INFO)
- simplefilter.assert_called_with("once")
-
-
-class TestFileFormatter(utils.TestCase):
- def test_nothing(self):
- formatter = context._FileFormatter()
- self.assertEqual(('%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
- '%(name)s %(message)s'), formatter.fmt)
-
- def test_options(self):
- class Opts(object):
- cloud = 'cloudy'
- os_project_name = 'projecty'
- username = 'usernamey'
- options = Opts()
- formatter = context._FileFormatter(options=options)
- self.assertEqual(('%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
- '%(name)s [cloudy usernamey projecty] %(message)s'),
- formatter.fmt)
-
- def test_config(self):
- config = mock.Mock()
- config.config = {'cloud': 'cloudy'}
- config.auth = {'project_name': 'projecty', 'username': 'usernamey'}
- formatter = context._FileFormatter(config=config)
- self.assertEqual(('%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
- '%(name)s [cloudy usernamey projecty] %(message)s'),
- formatter.fmt)
-
-
-class TestLogConfigurator(utils.TestCase):
- def setUp(self):
- super(TestLogConfigurator, self).setUp()
- self.options = mock.Mock()
- self.options.verbose_level = 1
- self.options.log_file = None
- self.options.debug = False
- self.root_logger = mock.Mock()
- self.root_logger.setLevel = mock.Mock()
- self.root_logger.addHandler = mock.Mock()
- self.requests_log = mock.Mock()
- self.requests_log.setLevel = mock.Mock()
- self.cliff_log = mock.Mock()
- self.cliff_log.setLevel = mock.Mock()
- self.stevedore_log = mock.Mock()
- self.stevedore_log.setLevel = mock.Mock()
- self.iso8601_log = mock.Mock()
- self.iso8601_log.setLevel = mock.Mock()
- self.loggers = [
- self.root_logger,
- self.requests_log,
- self.cliff_log,
- self.stevedore_log,
- self.iso8601_log]
-
- @mock.patch('logging.StreamHandler')
- @mock.patch('logging.getLogger')
- @mock.patch('openstackclient.common.context.set_warning_filter')
- def test_init(self, warning_filter, getLogger, handle):
- getLogger.side_effect = self.loggers
- console_logger = mock.Mock()
- console_logger.setFormatter = mock.Mock()
- console_logger.setLevel = mock.Mock()
- handle.return_value = console_logger
-
- configurator = context.LogConfigurator(self.options)
-
- getLogger.assert_called_with('iso8601') # last call
- warning_filter.assert_called_with(logging.WARNING)
- self.root_logger.setLevel.assert_called_with(logging.DEBUG)
- self.root_logger.addHandler.assert_called_with(console_logger)
- self.requests_log.setLevel.assert_called_with(logging.ERROR)
- self.cliff_log.setLevel.assert_called_with(logging.ERROR)
- self.stevedore_log.setLevel.assert_called_with(logging.ERROR)
- self.iso8601_log.setLevel.assert_called_with(logging.ERROR)
- self.assertEqual(False, configurator.dump_trace)
-
- @mock.patch('logging.getLogger')
- @mock.patch('openstackclient.common.context.set_warning_filter')
- def test_init_no_debug(self, warning_filter, getLogger):
- getLogger.side_effect = self.loggers
- self.options.debug = True
-
- configurator = context.LogConfigurator(self.options)
-
- warning_filter.assert_called_with(logging.DEBUG)
- self.requests_log.setLevel.assert_called_with(logging.DEBUG)
- self.assertEqual(True, configurator.dump_trace)
-
- @mock.patch('logging.FileHandler')
- @mock.patch('logging.getLogger')
- @mock.patch('openstackclient.common.context.set_warning_filter')
- @mock.patch('openstackclient.common.context._FileFormatter')
- def test_init_log_file(self, formatter, warning_filter, getLogger, handle):
- getLogger.side_effect = self.loggers
- self.options.log_file = '/tmp/log_file'
- file_logger = mock.Mock()
- file_logger.setFormatter = mock.Mock()
- file_logger.setLevel = mock.Mock()
- handle.return_value = file_logger
- mock_formatter = mock.Mock()
- formatter.return_value = mock_formatter
-
- context.LogConfigurator(self.options)
-
- handle.assert_called_with(filename=self.options.log_file)
- self.root_logger.addHandler.assert_called_with(file_logger)
- file_logger.setFormatter.assert_called_with(mock_formatter)
- file_logger.setLevel.assert_called_with(logging.WARNING)
-
- @mock.patch('logging.FileHandler')
- @mock.patch('logging.getLogger')
- @mock.patch('openstackclient.common.context.set_warning_filter')
- @mock.patch('openstackclient.common.context._FileFormatter')
- def test_configure(self, formatter, warning_filter, getLogger, handle):
- getLogger.side_effect = self.loggers
- configurator = context.LogConfigurator(self.options)
- cloud_config = mock.Mock()
- config_log = '/tmp/config_log'
- cloud_config.config = {
- 'log_file': config_log,
- 'verbose_level': 1,
- 'log_level': 'info'}
- file_logger = mock.Mock()
- file_logger.setFormatter = mock.Mock()
- file_logger.setLevel = mock.Mock()
- handle.return_value = file_logger
- mock_formatter = mock.Mock()
- formatter.return_value = mock_formatter
-
- configurator.configure(cloud_config)
-
- warning_filter.assert_called_with(logging.INFO)
- handle.assert_called_with(filename=config_log)
- self.root_logger.addHandler.assert_called_with(file_logger)
- file_logger.setFormatter.assert_called_with(mock_formatter)
- file_logger.setLevel.assert_called_with(logging.INFO)
- self.assertEqual(False, configurator.dump_trace)