From 9da20483b8aa26a3090093212d007e6dc756b2d2 Mon Sep 17 00:00:00 2001 From: zlg Date: Sat, 6 Oct 2018 22:28:40 -0700 Subject: cli: Add "delete" command Unlike the old version of vgstash, the new one does not accept row IDs as arguments for removal. Instead, it accepts two mandatory arguments: the title of the game, and the system it's on. This is in line with the database itself, using the title and system as primary keys. --- src/vgstash/test_vgstash_cli.py | 9 +++++++++ src/vgstash_cli.py | 10 ++++++++++ 2 files changed, 19 insertions(+) (limited to 'src') diff --git a/src/vgstash/test_vgstash_cli.py b/src/vgstash/test_vgstash_cli.py index faf87b2..cbbd151 100644 --- a/src/vgstash/test_vgstash_cli.py +++ b/src/vgstash/test_vgstash_cli.py @@ -142,3 +142,12 @@ def test_list_pretty_tiny(): 'Super Mario Bros. | NES | P | P ', 'The Legend of Zelda | NES | D | P \n' )) + + +def test_delete(): + runner = CliRunner() + result = runner.invoke(vgstash_cli.cli, ['delete', 'Vectorman 2', 'Genesis']) + if verbose: + print(result.output) + assert result.exit_code == 0 + assert result.output == "Removed Vectorman 2 for Genesis from your collection.\n" diff --git a/src/vgstash_cli.py b/src/vgstash_cli.py index 39d2454..f88187c 100644 --- a/src/vgstash_cli.py +++ b/src/vgstash_cli.py @@ -129,3 +129,13 @@ def list_games(filter, raw, width): else: row_format(r, width, first_pass) first_pass = False + + +@cli.command('delete') +@click.argument('title', required=True) +@click.argument('system', required=True) +def delete_game(title, system): + db = get_db() + target_game = vgstash.Game(title, system) + if db.delete_game(target_game): + click.echo("Removed {} for {} from your collection.".format(title, system)) -- cgit v1.2.3-54-g00ecf