Skip to content

Commit 6036361

Browse files
authored
Merge pull request scalative#166 from mdickinson/feature/case-insensitive-log-level
Allow log-level names to be case-insensitive
2 parents bbcfb80 + ca0e63f commit 6036361

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

haas/haas_application.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def _create_log_level_parser():
5858

5959
def _add_log_level_option(parser):
6060
parser.add_argument('--log-level', default=None,
61+
type=lambda level_name: level_name.lower(),
6162
choices=['critical', 'fatal', 'error', 'warning',
6263
'info', 'debug'],
6364
help='Log level for haas logging')

haas/tests/test_haas_application.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,9 @@ def test_main_buffer(self, runner_class, result_class, plugin_manager):
253253
def test_with_logging(self, get_logger, runner_class, result_class,
254254
plugin_manager):
255255
# Given
256+
logger = Mock()
257+
get_logger.side_effect = lambda name: logger
258+
256259
with self._basic_test_fixture() as package_name:
257260
run, result = self._run_with_arguments(
258261
runner_class, result_class, '--log-level', 'debug',
@@ -261,6 +264,36 @@ def test_with_logging(self, get_logger, runner_class, result_class,
261264

262265
# Then
263266
get_logger.assert_called_once_with(haas.__name__)
267+
logger.setLevel.assert_called_once_with(logging.DEBUG)
268+
args = runner_class.from_args.call_args
269+
args, kwargs = args
270+
ns, dest = args
271+
self.assertIsInstance(ns, Namespace)
272+
self.assertEqual(ns.verbosity, 1)
273+
self.assertFalse(ns.failfast)
274+
self.assertFalse(ns.buffer)
275+
276+
run.assert_called_once_with(result, suite)
277+
result.wasSuccessful.assert_called_once_with()
278+
279+
@patch('logging.getLogger')
280+
@with_patched_test_runner
281+
def test_with_logging_uppercase_loglevel(self, get_logger,
282+
runner_class, result_class,
283+
plugin_manager):
284+
# Given
285+
logger = Mock()
286+
get_logger.side_effect = lambda name: logger
287+
288+
with self._basic_test_fixture() as package_name:
289+
run, result = self._run_with_arguments(
290+
runner_class, result_class, '--log-level', 'WARNING',
291+
plugin_manager=plugin_manager)
292+
suite = Discoverer(Loader()).discover(package_name)
293+
294+
# Then
295+
get_logger.assert_called_once_with(haas.__name__)
296+
logger.setLevel.assert_called_once_with(logging.WARNING)
264297
args = runner_class.from_args.call_args
265298
args, kwargs = args
266299
ns, dest = args

0 commit comments

Comments
 (0)