aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/vgstash/test_vgstash.py145
-rw-r--r--src/vgstash/test_vgstash_cli.py258
-rw-r--r--src/vgstash_cli.py2
3 files changed, 1 insertions, 404 deletions
diff --git a/src/vgstash/test_vgstash.py b/src/vgstash/test_vgstash.py
deleted file mode 100644
index 74f3c43..0000000
--- a/src/vgstash/test_vgstash.py
+++ /dev/null
@@ -1,145 +0,0 @@
-import os
-import pytest
-import vgstash
-import sqlite3
-
-def test_config():
- assert vgstash.DEFAULT_CONFIG['db_location']
- assert vgstash.DEFAULT_CONFIG['progress'] in vgstash.PROGRESS.values()
- assert vgstash.DEFAULT_CONFIG['ownership'] in vgstash.OWNERSHIP.values()
-
-@pytest.fixture(scope="module")
-def vgstash_db():
- vgstash.DEFAULT_CONFIG['db_location'] = '.vgstash.db'
- yield vgstash.DB(vgstash.DEFAULT_CONFIG['db_location'])
- os.remove(vgstash.DEFAULT_CONFIG['db_location'])
-
-def test_game_min():
- game = vgstash.Game("test_game1", "system3")
- assert isinstance(game, vgstash.Game)
- assert isinstance(game.title, str)
- assert isinstance(game.system, str)
- assert isinstance(game.ownership, int)
- assert isinstance(game.progress, int)
- assert isinstance(game.notes, str)
- assert game.ownership in vgstash.OWNERSHIP.values()
- assert game.progress in vgstash.PROGRESS.values()
-
-def test_game_ownership():
- game = vgstash.Game("test_game2", "system3", 1)
- assert isinstance(game, vgstash.Game)
- assert isinstance(game.title, str)
- assert isinstance(game.system, str)
- assert isinstance(game.ownership, int)
- assert isinstance(game.progress, int)
- assert isinstance(game.notes, str)
- assert game.ownership in vgstash.OWNERSHIP.values()
- assert game.progress in vgstash.PROGRESS.values()
-
-def test_game_ownership_str():
- game = vgstash.Game("test_game2", "system3", 'd')
- assert isinstance(game, vgstash.Game)
- assert isinstance(game.title, str)
- assert isinstance(game.system, str)
- assert isinstance(game.ownership, int)
- assert isinstance(game.progress, int)
- assert isinstance(game.notes, str)
- assert game.ownership in vgstash.OWNERSHIP.values()
- assert game.progress in vgstash.PROGRESS.values()
-
-def test_game_progress():
- game = vgstash.Game("test_game3", "system3", progress=1)
- assert isinstance(game, vgstash.Game)
- assert isinstance(game.title, str)
- assert isinstance(game.system, str)
- assert isinstance(game.ownership, int)
- assert isinstance(game.progress, int)
- assert isinstance(game.notes, str)
- assert game.ownership in vgstash.OWNERSHIP.values()
- assert game.progress in vgstash.PROGRESS.values()
-
-def test_game_progress_str():
- game = vgstash.Game("test_game3", "system3", progress='c')
- assert isinstance(game, vgstash.Game)
- assert isinstance(game.title, str)
- assert isinstance(game.system, str)
- assert isinstance(game.ownership, int)
- assert isinstance(game.progress, int)
- assert isinstance(game.notes, str)
- assert game.ownership in vgstash.OWNERSHIP.values()
- assert game.progress in vgstash.PROGRESS.values()
-
-def test_game_notes_no_own_or_progress():
- game = vgstash.Game("test_game4", "system3", notes="Hello world")
- assert isinstance(game, vgstash.Game)
- assert isinstance(game.title, str)
- assert isinstance(game.system, str)
- assert isinstance(game.ownership, int)
- assert isinstance(game.progress, int)
- assert isinstance(game.notes, str)
- assert game.ownership in vgstash.OWNERSHIP.values()
- assert game.progress in vgstash.PROGRESS.values()
-
-def test_game_full():
- game = vgstash.Game("test_game5", "system3", 'b', 2, "Blah")
- assert isinstance(game, vgstash.Game)
- assert isinstance(game.title, str)
- assert isinstance(game.system, str)
- assert isinstance(game.ownership, int)
- assert isinstance(game.progress, int)
- assert isinstance(game.notes, str)
- assert game.ownership in vgstash.OWNERSHIP.values()
- assert game.progress in vgstash.PROGRESS.values()
-
-def test_db(vgstash_db):
- assert isinstance(vgstash_db.conn, sqlite3.Connection)
-
-def test_db_create_schema(vgstash_db):
- assert vgstash_db.create_schema()
-
-def test_db_add_game(vgstash_db):
- game = vgstash.Game("db_add_game", "system")
- assert vgstash_db.add_game(game)
- assert vgstash_db.has_game(game)
-
-def test_db_add_game_ownership(vgstash_db):
- game = vgstash.Game("db_add_game_ownership", "system2", 'p')
- assert vgstash_db.add_game(game)
- assert vgstash_db.has_game(game)
-
-def test_db_add_game_notes(vgstash_db):
- game = vgstash.Game("db_add_game_notes", "system2", '-', '-', 'my notes')
- assert vgstash_db.add_game(game)
- assert vgstash_db.has_game(game)
-
-def test_db_update_game(vgstash_db):
- oldgame = vgstash.Game("db_add_game", "system")
- newgame = vgstash.Game("db_update_game", "system")
- if vgstash_db.has_game(oldgame):
- assert vgstash_db.update_game(oldgame, newgame)
- assert vgstash_db.has_game(newgame)
-
-def test_db_delete_game(vgstash_db):
- game = vgstash.Game("db_delete_game", "system2")
- vgstash_db.add_game(game)
- assert vgstash_db.delete_game(game)
-
-def test_db_list_games(vgstash_db):
- res = vgstash_db.list_games()
- assert isinstance(res, list)
- assert isinstance(res[0], sqlite3.Row)
-
-def test_db_add_filter(vgstash_db):
- assert vgstash_db.add_filter("db_add_filter", "SELECT * FROM games WHERE system = 'system2'")
- assert vgstash_db.has_filter("db_add_filter")
-
-def test_db_update_filter(vgstash_db):
- assert vgstash_db.update_filter("db_add_filter", "SELECT * FROM games WHERE system='system'")
- assert vgstash_db.has_filter("db_add_filter")
- assert "'system'" in vgstash.FILTERS["db_add_filter"]
-
-def test_db_delete_filter(vgstash_db):
- assert vgstash_db.delete_filter("db_add_filter")
-
-def test_db_list_filters(vgstash_db):
- assert len(vgstash_db.list_filters()) > 0
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"))
diff --git a/src/vgstash_cli.py b/src/vgstash_cli.py
index 72a751a..17fd301 100644
--- a/src/vgstash_cli.py
+++ b/src/vgstash_cli.py
@@ -270,5 +270,5 @@ def export_file(format, filepath):
with open(filepath, "w") as fp:
yaml.dump(game_set, fp, default_flow_style=False,
indent=4, allow_unicode=True)
- click.echo("Successfully exported 6 games to {}.".format(os.path.join(os.getcwd(), "test_export.yml")))
+ click.echo("Successfully exported {} games to {}.".format(len(game_set), filepath))