utils/get-developers: use parser.error() rather than canned print+return

parser.error() reports a nice error message, that also displays a short
reminder of the available options.

Adapt the test-suite accordingly: previously, the error string was an
exact string in the stdout list, while it now is a substring in one of
the strings in stderr. The exit code changes, too.

Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
Cc: Julien Olivain <ju.o@free.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
(cherry picked from commit 35f381b93e52895179569876b23a509c9a7e0225)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Yann E. MORIN 2024-12-23 08:27:17 +01:00 committed by Peter Korsgaard
parent 6c0f612efa
commit 7d9899dbd1
2 changed files with 8 additions and 10 deletions

View File

@ -41,9 +41,9 @@ class TestGetDevelopers(unittest.TestCase):
# no args, with syntax error in the file
developers = b'text3\n'
out, err, rc = call_get_developers("./utils/get-developers", [], self.WITH_EMPTY_PATH, topdir, developers)
self.assertIn("No action specified", out)
self.assertEqual(rc, 0)
self.assertEqual(len(err), 0)
self.assertIn("No action specified", "\n".join(err))
self.assertEqual(rc, 2)
self.assertEqual(len(out), 0)
# -v generating error, called from the main dir
developers = b'text1\n'
@ -150,9 +150,9 @@ class TestGetDevelopers(unittest.TestCase):
# no args, with syntax error in the file
developers = b'text3\n'
out, err, rc = call_get_developers("./utils/get-developers", [], self.WITH_EMPTY_PATH, topdir, developers)
self.assertIn("No action specified", out)
self.assertEqual(rc, 0)
self.assertEqual(len(err), 0)
self.assertIn("No action specified", "\n".join(err))
self.assertEqual(rc, 2)
self.assertEqual(len(out), 0)
# patchfile from topdir and from elsewhere
abs_path = infra.filepath("tests/utils/test_get_developers/")

View File

@ -40,11 +40,9 @@ def __main__():
if len(args.patches) != 0:
action += 1
if action > 1:
print("Cannot do more than one action")
return
parser.error("Cannot do more than one action")
if action == 0:
print("No action specified")
return
parser.error("No action specified")
devs = getdeveloperlib.parse_developers(args.filename)
if devs is None: