From 4f2abc87c8cf29312d4b797aba6e90ce5b783a42 Mon Sep 17 00:00:00 2001 From: Frode Nordahl Date: Tue, 22 May 2018 08:51:41 +0200 Subject: [PATCH] Add unit tests for loglevel command line argument parsing --- ...t_zaza_charm_lifecycle_func_test_runner.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/unit_tests/test_zaza_charm_lifecycle_func_test_runner.py b/unit_tests/test_zaza_charm_lifecycle_func_test_runner.py index 9312a29..43ce7b7 100644 --- a/unit_tests/test_zaza_charm_lifecycle_func_test_runner.py +++ b/unit_tests/test_zaza_charm_lifecycle_func_test_runner.py @@ -25,6 +25,8 @@ class TestCharmLifecycleFuncTestRunner(ut_utils.BaseTestCase): self.assertTrue(args.smoke) args = lc_func_test_runner.parse_args(['--bundle', 'mybundle']) self.assertEqual(args.bundle, 'mybundle') + args = lc_func_test_runner.parse_args(['--log', 'DEBUG']) + self.assertEqual(args.loglevel, 'DEBUG') def test_func_test_runner(self): self.patch_object(lc_func_test_runner.utils, 'get_charm_config') @@ -121,3 +123,30 @@ class TestCharmLifecycleFuncTestRunner(ut_utils.BaseTestCase): deploy_calls = [ mock.call('./tests/bundles/maveric-filebeat.yaml', 'newmodel')] self.deploy.assert_has_calls(deploy_calls) + + def test_main_loglevel(self): + self.patch_object(lc_func_test_runner, 'parse_args') + self.patch_object(lc_func_test_runner, 'logging') + self.patch_object(lc_func_test_runner, 'func_test_runner') + self.patch_object(lc_func_test_runner, 'asyncio') + _args = mock.Mock() + _args.loglevel = 'DeBuG' + self.parse_args.return_value = _args + self.logging.DEBUG = 10 + lc_func_test_runner.main() + self.logging.basicConfig.assert_called_with(level=10) + + def test_main_loglevel_invalid(self): + self.patch_object(lc_func_test_runner, 'parse_args') + self.patch_object(lc_func_test_runner, 'logging') + self.patch_object(lc_func_test_runner, 'func_test_runner') + self.patch_object(lc_func_test_runner, 'asyncio') + _args = mock.Mock() + _args.loglevel = 'invalid' + self.parse_args.return_value = _args + with self.assertRaises(ValueError) as context: + lc_func_test_runner.main() + self.assertEqual( + 'Invalid log level: "invalid"', + str(context.exception)) + self.assertFalse(self.logging.basicConfig.called)