diff --git a/avocado/core/output.py b/avocado/core/output.py index 5f3a6aafce1bb95d355e500e7555c2ad77306aba..244330e0e2739dd8434c6fda356bddfdd99c6ee9 100644 --- a/avocado/core/output.py +++ b/avocado/core/output.py @@ -423,8 +423,8 @@ def reconfigure(args): if len(stream_level) == 1: level = logging.DEBUG else: - level = (int(name[1]) if name[1].isdigit() - else logging.getLevelName(name[1].upper())) + level = (int(stream_level[1]) if stream_level[1].isdigit() + else logging.getLevelName(stream_level[1].upper())) try: add_log_handler(name, logging.StreamHandler, STD_OUTPUT.stdout, level) diff --git a/selftests/functional/test_streams.py b/selftests/functional/test_streams.py index c55e4fe5d96f99ca5e879ca4aaaf32c7c677f3f7..dfd9d7d1a687ec7452db5197db82ac4919840e60 100644 --- a/selftests/functional/test_streams.py +++ b/selftests/functional/test_streams.py @@ -114,6 +114,29 @@ class StreamsTest(unittest.TestCase): self.assertEqual('', result.stdout) self.assertNotEqual('', result.stderr) + def test_custom_stream_and_level(self): + """ + Checks if "--show stream:level" works for non-built-in-streams + """ + def run(show, no_lines): + result = process.run("./scripts/avocado --show %s config" % show) + out = (result.stdout + result.stderr).splitlines() + if no_lines == "more_than_one": + self.assertGreater(len(out), 1, "Output of %s should contain " + "more than 1 line, contains only %s\n%s" + % (result.command, len(out), result)) + else: + self.assertEqual(len(out), no_lines, "Output of %s should " + "contain %s lines, contains %s instead\n%s" + % (result.command, no_lines, len(out), + result)) + run("avocado.app:dEbUg", "more_than_one") + run("avocado.app:0", "more_than_one") + run("avocado.app:InFo", 1) + run("avocado.app:20", 1) + run("avocado.app:wARn", 0) + run("avocado.app:30", 0) + def tearDown(self): shutil.rmtree(self.tmpdir)