diff options
Diffstat (limited to 'src/vgstash/test_vgstash_cli.py')
-rw-r--r-- | src/vgstash/test_vgstash_cli.py | 258 |
1 files changed, 0 insertions, 258 deletions
diff --git a/src/vgstash/test_vgstash_cli.py b/src/vgstash/test_vgstash_cli.py deleted file mode 100644 index 098c39e..0000000 --- a/src/vgstash/test_vgstash_cli.py +++ /dev/null @@ -1,258 +0,0 @@ -import click -import os -import pytest -import vgstash -import vgstash_cli - -from click.testing import CliRunner - -# TODO: Setup a testing directory for test data and integrate with pytest - -verbose = True -interactive = False - -# Change this to suit your testing environment -if not interactive: - os.environ['EDITOR'] = "cat" -else: - if not os.getenv("EDITOR"): - os.environ['EDITOR'] = "vim" - -def test_init(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['init']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Initializing the database...\nSchema created.\n" - - -def test_add_minimum(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['add', 'Super Mario Bros.', 'NES']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Added Super Mario Bros. for NES. You physically own it and are playing it.\n" - - -def test_add_ownership(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['add', 'The Legend of Zelda', 'NES', 'd']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Added The Legend of Zelda for NES. You digitally own it and are playing it.\n" - - -def test_add_typical(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['add', 'Sonic the Hedgehog 2', 'Genesis', '0', '3']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Added Sonic the Hedgehog 2 for Genesis. You do not own it and have beaten it.\n" - - -def test_add_full(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['add', 'Vectorman', 'Genesis', 'u', 'b', 'beep']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Added Vectorman for Genesis. You do not own it and have beaten it. It also has notes.\n" - - -def test_add_full_note_with_newline(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['add', 'Vectorman 2', 'Genesis', 'p', 'p', 'beep\nboop']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Added Vectorman 2 for Genesis. You physically own it and are playing it. It also has notes.\n" - - -def test_list(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.list_games, ['--raw']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == '\n'.join(( - 'Sonic the Hedgehog 2|Genesis|0|3|', - 'Vectorman|Genesis|0|3|beep', - 'Vectorman 2|Genesis|1|2|beep\\nboop', - 'Super Mario Bros.|NES|1|2|', - 'The Legend of Zelda|NES|2|2|\n', - )) - - -def test_list_filter(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['list', '-r', 'playlog']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == '\n'.join(( - 'Vectorman 2|Genesis|1|2|beep\\nboop', - 'Super Mario Bros.|NES|1|2|', - 'The Legend of Zelda|NES|2|2|\n', - )) - - -def test_list_pretty(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['list', '-w', '80']) - if verbose: - print() - print(result.output) - assert result.exit_code == 0 - assert result.output == '\n'.join(( - 'Title | System | Own | Progress', - '--------------------------------------------------------------------------------', - 'Sonic the Hedgehog 2 | Genesis | | B', - 'Vectorman | Genesis | | B', - 'Vectorman 2 | Genesis | P | P', - 'Super Mario Bros. | NES | P | P', - 'The Legend of Zelda | NES | D | P\n', - )) - - -def test_list_pretty_smaller(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['list', '-w', '60']) - if verbose: - print() - print(result.output) - assert result.exit_code == 0 - assert result.output == '\n'.join(( - 'Title | System | Own | Progress', - '------------------------------------------------------------', - 'Sonic the Hedgehog 2 | Genesis | | B', - 'Vectorman | Genesis | | B', - 'Vectorman 2 | Genesis | P | P', - 'Super Mario Bros. | NES | P | P', - 'The Legend of Zelda | NES | D | P\n' - )) - - -def test_list_pretty_tiny(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['list', '-w', '50']) - if verbose: - print() - print(result.output) - assert result.exit_code == 0 - assert result.output == '\n'.join(( - 'Title | System | Own | Progress', - '--------------------------------------------------', - 'Sonic the Hedgehog 2 | Genesis | | B', - 'Vectorman | Genesis | | B', - 'Vectorman 2 | Genesis | P | P', - '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', 'Genesis']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Removed Vectorman for Genesis from your collection.\n" - - -def test_update(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['update', 'Super Mario Bros.', 'NES', 'progress', 'c']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == 'Updated Super Mario Bros. for NES. Its progress is now complete.\n' - - list_result = runner.invoke(vgstash_cli.cli, ['list', '-w', '40']) - if verbose: - print(list_result.output) - assert list_result.exit_code == 0 - assert list_result.output == "\n".join(( - 'Title | System | Own | Progress', - '----------------------------------------', - 'Sonic the H | Genesis | | B', - 'Vectorman 2 | Genesis | P | P', - 'Super Mario | NES | P | C', - 'The Legend | NES | D | P\n' - )) - - -def test_notes(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['notes', 'Vectorman 2', 'Genesis']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "\n".join(( - 'Notes for Vectorman 2 on Genesis:', - '', - 'beep', - 'boop\n' - )) - - -def test_notes_edit(): - if not interactive: - return - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ['notes', 'Vectorman 2', 'Genesis', '-e']) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Notes for Vectorman 2 on Genesis have been updated!\n" - - # List the results to make sure they match what the editor has. - list_runner = CliRunner() - list_result = runner.invoke(vgstash_cli.cli, ['list', '-r']) - if verbose: - print(list_result.output) - assert list_result.exit_code == 0 - - -def test_import_file_yaml(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ["import", "test_import.yml"]) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Successfully imported 2 games from {}.\n".format(os.path.join(os.getcwd(), "test_import.yml")) - - # List the results to make sure they match what the editor has. - list_runner = CliRunner() - list_result = runner.invoke(vgstash_cli.cli, ['list', '-w', '40']) - if verbose: - print(list_result.output) - assert list_result.exit_code == 0 - - -def test_import_file_yaml_update(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ["import", "test_import.yml", "-u"]) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Successfully imported 3 games from {}.\n".format(os.path.join(os.getcwd(), "test_import.yml")) - - # List the results to make sure they match what the editor has. - list_runner = CliRunner() - list_result = runner.invoke(vgstash_cli.cli, ['list', '-w', '40']) - if verbose: - print(list_result.output) - assert list_result.exit_code == 0 - - -def test_export_file_yaml(): - runner = CliRunner() - result = runner.invoke(vgstash_cli.cli, ["export", "-f", "yaml", "test_export.yml"]) - if verbose: - print(result.output) - assert result.exit_code == 0 - assert result.output == "Successfully exported 6 games to {}.\n".format(os.path.join(os.getcwd(), "test_export.yml")) |