aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzlg <zlg@zlg.space>2020-03-02 21:32:45 -0800
committerzlg <zlg@zlg.space>2020-03-02 21:32:45 -0800
commit6342e1479d6390a3101e715ff67c4983753cc7db (patch)
treebc258667e14971b3c464843044e98f5b5c4cb21b
parentAvoid a backtrace when updating an invalid game (diff)
downloadvgstash-6342e1479d6390a3101e715ff67c4983753cc7db.tar.gz
vgstash-6342e1479d6390a3101e715ff67c4983753cc7db.tar.bz2
vgstash-6342e1479d6390a3101e715ff67c4983753cc7db.tar.xz
vgstash-6342e1479d6390a3101e715ff67c4983753cc7db.zip
Avoid a backtrace when editing notes on an invalid game
ZLG-Bug: 4
-rwxr-xr-xsrc/vgstash_cli.py8
-rw-r--r--tests/test_vgstash_cli.py17
2 files changed, 24 insertions, 1 deletions
diff --git a/src/vgstash_cli.py b/src/vgstash_cli.py
index 323f1d9..d00f339 100755
--- a/src/vgstash_cli.py
+++ b/src/vgstash_cli.py
@@ -162,6 +162,7 @@ def update_game(title, system, attr, val):
target_game = db.get_game(title, system)
except:
click.echo("Game not found. Please try again.")
+ return
if attr == 'ownership':
val = vgstash.vtok(val, vgstash.OWNERSHIP)
if attr == 'progress':
@@ -183,7 +184,12 @@ def update_game(title, system, attr, val):
@click.option('--edit', '-e', is_flag=True, default=False)
def notes(title, system, edit):
db = get_db()
- target_game = db.get_game(title, system)
+ try:
+ target_game = db.get_game(title, system)
+ except:
+ click.echo("Game not found. Please try again.")
+ return
+
if edit:
with tempfile.NamedTemporaryFile() as tmpfile:
tmpfile.write(target_game.notes.encode("UTF-8"))
diff --git a/tests/test_vgstash_cli.py b/tests/test_vgstash_cli.py
index 30eff62..0e24859 100644
--- a/tests/test_vgstash_cli.py
+++ b/tests/test_vgstash_cli.py
@@ -199,6 +199,14 @@ def test_update():
'The Legend | NES | D | P\n'
))
+def test_update_invalid():
+ runner = CliRunner()
+ result = runner.invoke(vgstash_cli.cli, ['update', 'Zelda: Skyward Sword', 'NES', 'progress', 'c'])
+ if verbose:
+ print(result.output)
+ assert result.exit_code == 0
+ assert result.output == 'Game not found. Please try again.\n'
+
def test_notes():
runner = CliRunner()
@@ -214,6 +222,15 @@ def test_notes():
))
+def test_notes_invalid():
+ runner = CliRunner()
+ result = runner.invoke(vgstash_cli.cli, ['notes', 'Zelda: Skyward Sword', 'NES', '-e'])
+ if verbose:
+ print(result.output)
+ assert result.exit_code == 0
+ assert result.output == 'Game not found. Please try again.\n'
+
+
def test_notes_empty():
runner = CliRunner()
result = runner.invoke(vgstash_cli.cli, ['notes', 'Super Mario Bros.', 'NES'])