idf.py: Fix regression ignorance of --verbose flag

This commit is contained in:
Sergei Silnov 2019-11-25 11:47:55 +01:00
parent f2a1a6105a
commit 262ed0e72b
3 changed files with 45 additions and 8 deletions

View file

@ -53,6 +53,8 @@ def action_extensions(base_actions, project_path):
for line in ctx.command.verbose_output: for line in ctx.command.verbose_output:
print(line) print(line)
return value
def clean(action, ctx, args): def clean(action, ctx, args):
if not os.path.isdir(args.build_dir): if not os.path.isdir(args.build_dir):
print("Build directory '%s' not found. Nothing to clean." % args.build_dir) print("Build directory '%s' not found. Nothing to clean." % args.build_dir)
@ -157,6 +159,7 @@ def action_extensions(base_actions, project_path):
"names": ["--version"], "names": ["--version"],
"help": "Show IDF version and exit.", "help": "Show IDF version and exit.",
"is_flag": True, "is_flag": True,
"expose_value": False,
"callback": idf_version_callback "callback": idf_version_callback
}, },
{ {

View file

@ -2,6 +2,11 @@ def action_extensions(base_actions, project_path=None):
def echo(name, *args, **kwargs): def echo(name, *args, **kwargs):
print(name, args, kwargs) print(name, args, kwargs)
def verbose(name, ctx, args):
print("Output from test-verbose")
if args.verbose:
print("Verbose mode on")
# Add global options # Add global options
extensions = { extensions = {
"global_options": [ "global_options": [
@ -37,11 +42,13 @@ def action_extensions(base_actions, project_path=None):
}, },
], ],
"actions": { "actions": {
"test-verbose": {
"callback": verbose,
"help": "Command that have some verbosity",
},
"test-0": { "test-0": {
"callback": "callback": echo,
echo, "help": "Non-deprecated command 0",
"help":
"Non-deprecated command 0",
"options": [ "options": [
{ {
"names": ["--test-sub-0"], "names": ["--test-sub-0"],

View file

@ -115,8 +115,9 @@ class TestDependencyManagement(unittest.TestCase):
standalone_mode=False, standalone_mode=False,
) )
sys.stdout = sys.__stdout__ sys.stdout = sys.__stdout__
self.assertIn('WARNING: Commands "all", "clean" are found in the list of commands more than once.', self.assertIn(
capturedOutput.getvalue()) 'WARNING: Commands "all", "clean" are found in the list of commands more than once.',
capturedOutput.getvalue())
sys.stdout = capturedOutput sys.stdout = capturedOutput
idf.init_cli()( idf.init_cli()(
@ -124,8 +125,34 @@ class TestDependencyManagement(unittest.TestCase):
standalone_mode=False, standalone_mode=False,
) )
sys.stdout = sys.__stdout__ sys.stdout = sys.__stdout__
self.assertIn('WARNING: Command "clean" is found in the list of commands more than once.', self.assertIn(
capturedOutput.getvalue()) 'WARNING: Command "clean" is found in the list of commands more than once.', capturedOutput.getvalue())
class TestVerboseFlag(unittest.TestCase):
def test_verbose_messages(self):
output = subprocess.check_output(
[
sys.executable,
idf_py_path,
"-C%s" % current_dir,
"-v",
"test-verbose",
], env=os.environ).decode('utf-8', 'ignore')
self.assertIn('Verbose mode on', output)
def test_verbose_messages_not_shown_by_default(self):
output = subprocess.check_output(
[
sys.executable,
idf_py_path,
"-C%s" % current_dir,
"test-verbose",
], env=os.environ).decode('utf-8', 'ignore')
self.assertIn('Output from test-verbose', output)
self.assertNotIn('Verbose mode on', output)
class TestGlobalAndSubcommandParameters(unittest.TestCase): class TestGlobalAndSubcommandParameters(unittest.TestCase):