Sometimes it is useful to include archived series in the listing so you can see which series could potentially be unarchived. Add a flag for this.
Add a --include-archived option to the 'series ls' command for this. Signed-off-by: Simon Glass <s...@chromium.org> --- tools/patman/cmdline.py | 8 +++++++- tools/patman/control.py | 2 +- tools/patman/cseries.py | 9 ++++++--- tools/patman/test_cseries.py | 24 ++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/tools/patman/cmdline.py b/tools/patman/cmdline.py index 924f0ad4e42..18bcece211f 100644 --- a/tools/patman/cmdline.py +++ b/tools/patman/cmdline.py @@ -138,6 +138,11 @@ def _add_show_cover_comments(parser): help='Show comments from the cover letter') +def _add_archived(parser): + parser.add_argument('-A', '--include-archived', action='store_true', + help='Show archived series as well') + + def add_patchwork_subparser(subparsers): """Add the 'patchwork' subparser @@ -262,7 +267,8 @@ def add_series_subparser(subparsers): series_subparsers.add_parser('get-link') series_subparsers.add_parser('inc') - series_subparsers.add_parser('ls') + ls = series_subparsers.add_parser('ls') + _add_archived(ls) mar = series_subparsers.add_parser('mark') mar.add_argument('-m', '--allow-marked', action='store_true', diff --git a/tools/patman/control.py b/tools/patman/control.py index 1250fa10c62..d898a4482af 100644 --- a/tools/patman/control.py +++ b/tools/patman/control.py @@ -174,7 +174,7 @@ def do_series(args, test_db=None, pwork=None, cser=None): elif args.subcmd == 'inc': cser.increment(args.series, args.dry_run) elif args.subcmd == 'ls': - cser.series_list() + cser.series_list(args.include_archived) elif args.subcmd == 'open': cser.open(pwork, args.series, args.version) elif args.subcmd == 'mark': diff --git a/tools/patman/cseries.py b/tools/patman/cseries.py index f2a6ae61ba9..717a2504962 100644 --- a/tools/patman/cseries.py +++ b/tools/patman/cseries.py @@ -386,13 +386,16 @@ class Cseries(cser_helper.CseriesHelper): return summary - def series_list(self): + def series_list(self, include_archived=False): """List all series Lines all series along with their description, number of patches - accepted and the available versions + accepted and the available versions + + Args: + include_archived (bool): True to include archived series also """ - sdict = self.db.series_get_dict() + sdict = self.db.series_get_dict(include_archived) print(f"{'Name':15} {'Description':40} Accepted Versions") border = f"{'-' * 15} {'-' * 40} -------- {'-' * 15}" print(border) diff --git a/tools/patman/test_cseries.py b/tools/patman/test_cseries.py index c761e0e1f9a..d6cd042e990 100644 --- a/tools/patman/test_cseries.py +++ b/tools/patman/test_cseries.py @@ -737,6 +737,30 @@ Tested-by: Mary Smith <msm...@wibble.com> # yak ' 1/3 1 2', lines[3]) self.assertTrue(lines[4].startswith('--')) + def test_series_list_archived(self): + """Archive a series and test listing it""" + self.setup_second() + self.cser.archive('first') + with terminal.capture() as (out, _): + self.run_args('series', 'ls', pwork=True) + lines = out.getvalue().splitlines() + self.assertEqual(4, len(lines)) + self.assertEqual( + 'second Series for my board ' + ' 1/3 1 2', lines[2]) + + # Now list including archived series + with terminal.capture() as (out, _): + self.run_args('series', 'ls', '--include-archived', pwork=True) + lines = out.getvalue().splitlines() + self.assertEqual(5, len(lines)) + self.assertEqual( + 'first ' + ' -/2 1', lines[2]) + self.assertEqual( + 'second Series for my board ' + ' 1/3 1 2', lines[3]) + def test_do_series_add(self): """Add a new cseries""" self.make_git_tree() -- 2.43.0 base-commit: e3ced530e543c9f24cbc66430abc6109ce8df015 branch: pate