aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzlg <zlg@zlg.space>2021-10-16 18:33:48 -0700
committerzlg <zlg@zlg.space>2021-10-16 18:33:48 -0700
commit269aecb4478c4ed6e15e1b155f259d978b178d2e (patch)
treee0d6a9c06c2f37371dc9b81f62b4a234a4eb2202
parentvgstash: Support 'member' ownership status (diff)
downloadvgstash-269aecb4478c4ed6e15e1b155f259d978b178d2e.tar.gz
vgstash-269aecb4478c4ed6e15e1b155f259d978b178d2e.tar.bz2
vgstash-269aecb4478c4ed6e15e1b155f259d978b178d2e.tar.xz
vgstash-269aecb4478c4ed6e15e1b155f259d978b178d2e.zip
vgstash_cli: 'export' with no filename prints to stdout
ZLG-Bug: 6
Diffstat (limited to '')
-rwxr-xr-xsrc/vgstash_cli.py17
-rw-r--r--tests/test_vgstash_cli.py49
2 files changed, 61 insertions, 5 deletions
diff --git a/src/vgstash_cli.py b/src/vgstash_cli.py
index 7b9a9b4..29f6026 100755
--- a/src/vgstash_cli.py
+++ b/src/vgstash_cli.py
@@ -294,7 +294,6 @@ def import_file(format, filepath, update):
resolve_path=True,
dir_okay=False,
file_okay=True),
- default=sys.stdout,
required=False,
)
def export_file(format, filepath):
@@ -317,14 +316,22 @@ def export_file(format, filepath):
for field in game.keys():
g.update({field: game[field]})
game_set.append(g)
- with open(filepath, "w") as fp:
+ if not filepath:
if format == "yaml":
- yaml.dump(game_set, fp, default_flow_style=False,
+ yaml.dump(game_set, sys.stdout, default_flow_style=False,
indent=4, allow_unicode=True)
if format == "json":
- json.dump(game_set, fp, allow_nan=False, indent=1, skipkeys=True, sort_keys=True)
+ json.dump(game_set, sys.stdout, allow_nan=False, indent=1, skipkeys=True, sort_keys=True)
+ else:
+ with open(filepath, "w") as fp:
+ if format == "yaml":
+ yaml.dump(game_set, fp, default_flow_style=False,
+ indent=4, allow_unicode=True)
+ if format == "json":
+ json.dump(game_set, fp, allow_nan=False, indent=1, skipkeys=True, sort_keys=True)
if len(game_set) > 0:
- click.echo("Successfully exported {} games to {}.".format(len(game_set), filepath))
+ if filepath:
+ click.echo("Successfully exported {} games to {}.".format(len(game_set), filepath))
else:
click.echo("Could not export any games; have you made sure your collection has games in it?")
diff --git a/tests/test_vgstash_cli.py b/tests/test_vgstash_cli.py
index e24c5a4..c6fa39d 100644
--- a/tests/test_vgstash_cli.py
+++ b/tests/test_vgstash_cli.py
@@ -342,6 +342,55 @@ def test_import_file_yaml_update():
print(list_result.output)
assert list_result.exit_code == 0
+def test_export_no_file():
+ runner = CliRunner()
+ result = runner.invoke(vgstash_cli.cli, ["export"])
+ if verbose:
+ print(result.output)
+ assert result.exit_code == 0
+ assert result.output == """- notes: ''
+ ownership: 2
+ progress: 4
+ system: 3DS
+ title: The Legend of Zelda
+- notes: ''
+ ownership: 1
+ progress: 3
+ system: GBA
+ title: Fire Emblem
+- notes: ''
+ ownership: 0
+ progress: 3
+ system: Genesis
+ title: Sonic the Hedgehog 2
+- notes: 'beep
+
+ boop'
+ ownership: 1
+ progress: 2
+ system: Genesis
+ title: Vectorman 2
+- notes: ''
+ ownership: 1
+ progress: 3
+ system: NES
+ title: Super Mario Bros.
+- notes: ''
+ ownership: 2
+ progress: 2
+ system: NES
+ title: The Legend of Zelda
+- notes: ''
+ ownership: 2
+ progress: 4
+ system: Switch
+ title: Puyo Puyo Tetris
+- notes: ''
+ ownership: 2
+ progress: 3
+ system: WiiU
+ title: Super Smash Bros for WiiU
+"""
def test_export_file_json():
runner = CliRunner()
ass='insertions'>+144 It's time for a refactor to a module; the functionality and interface are clashing. 2018-03-18README.mdown: break line correctlyzlg1-1/+1 2018-03-18add 'playlog' list filterzlg2-2/+9 This filter is used to get an idea of which games you're currently playing through, so you can prioritize games to play when you're bored and detect it when you've beaten a game but haven't marked it as such. 2018-03-13Update helpers a bitzlg1-2/+9 At present, user modification is needed to make these seamless. vgup() may need to be axed in favor of telling the user to make an alias. 2018-03-13Make VGSTASH_DB_LOCATION point to a filezlg2-21/+20 It used to point to a directory, which would then look for .vgstash.db. This behavior was kind of backwards and I don't remember why I did it that way. This change gives users more control over where they put their DB. Be sure to update your environment variable if you have it set! 2016-11-18Remove settings from helpers.shZe Libertine Gamer1-5/+0 Sourcing them in .bash_profile screws up login if they're set. 2016-11-15Correct phrasing in README.Ze Libertine Gamer1-4/+4 2016-11-13DerpZe Libertine Gamer1-0/+1 2016-11-03Improve error handling in shell scriptsZe Libertine Gamer4-3/+23 2016-10-24Correct run_again, add recursionZe Libertine Gamer1-0/+4 Loops and functions -- oh my, what a useful combination. :) 2016-10-21Add quotes to correct behavior for arglistZe Libertine Gamer1-1/+1 2016-10-14updater.sh: add recursion, error handlingZe Libertine Gamer1-43/+101 2016-10-14Correct pipe-handling behaviorZe Libertine Gamer1-1/+9 2016-10-12Clarify a method to move between platformsZe Libertine Gamer1-2/+5 Also correct a typo.