summaryrefslogtreecommitdiff
path: root/src/vgstash
diff options
context:
space:
mode:
authorzlg <zlg@zlg.space>2018-10-06 22:26:21 -0700
committerzlg <zlg@zlg.space>2018-10-06 22:26:21 -0700
commite5875bb6b73f91db5a9982e2816de649e9bc4ef6 (patch)
tree20b6de8327379999fdb0589fe5bc3cae1ade726c /src/vgstash
parentcli: change "Status" heading to "Progress" (diff)
downloadvgstash-e5875bb6b73f91db5a9982e2816de649e9bc4ef6.tar.gz
vgstash-e5875bb6b73f91db5a9982e2816de649e9bc4ef6.tar.bz2
vgstash-e5875bb6b73f91db5a9982e2816de649e9bc4ef6.tar.xz
vgstash-e5875bb6b73f91db5a9982e2816de649e9bc4ef6.zip
Remove ID field from DB
The sqlite database already uses a game's title and system as the primary keys. Row IDs are redundant.
Diffstat (limited to 'src/vgstash')
-rwxr-xr-xsrc/vgstash/__init__.py24
-rw-r--r--src/vgstash/test_vgstash_cli.py52
2 files changed, 43 insertions, 33 deletions
diff --git a/src/vgstash/__init__.py b/src/vgstash/__init__.py
index 798a062..71b5981 100755
--- a/src/vgstash/__init__.py
+++ b/src/vgstash/__init__.py
@@ -33,18 +33,18 @@ DEFAULT_CONFIG = {
}
FILTERS = {
- 'allgames': "SELECT rowid,* FROM games ORDER BY system, title",
- 'backlog': "SELECT rowid,* FROM games WHERE ownership > 0 AND progress < 3 ORDER BY system, title ASC",
- 'borrowing': "SELECT rowid,* FROM games WHERE ownership = 0 AND progress = 2 ORDER BY system, title ASC",
- 'complete': "SELECT rowid,* FROM games WHERE progress = 4 ORDER BY system, title ASC",
- 'digital': "SELECT rowid,* FROM games WHERE ownership = 2 ORDER BY system, title ASC",
- 'done': "SELECT rowid,* FROM games WHERE progress > 2 ORDER BY system, title ASC",
- 'incomplete': "SELECT rowid,* FROM games WHERE progress = 3 AND ownership > 0 ORDER BY system, title ASC",
- 'new': "SELECT rowid,* FROM games WHERE progress = 1 ORDER BY system, title ASC",
- 'owned': "SELECT rowid,* FROM games WHERE ownership > 0 ORDER BY system, title ASC",
- 'physical': "SELECT rowid,* FROM games WHERE ownership = 1 ORDER BY system, title ASC",
- 'playlog': "SELECT rowid,* FROM games WHERE ownership > 0 AND progress = 2 ORDER BY system, title ASC",
- 'unowned': "SELECT rowid,* FROM games WHERE ownership = 0 ORDER BY system, title ASC",
+ 'allgames': "SELECT * FROM games ORDER BY system, title",
+ 'backlog': "SELECT * FROM games WHERE ownership > 0 AND progress < 3 ORDER BY system, title ASC",
+ 'borrowing': "SELECT * FROM games WHERE ownership = 0 AND progress = 2 ORDER BY system, title ASC",
+ 'complete': "SELECT * FROM games WHERE progress = 4 ORDER BY system, title ASC",
+ 'digital': "SELECT * FROM games WHERE ownership = 2 ORDER BY system, title ASC",
+ 'done': "SELECT * FROM games WHERE progress > 2 ORDER BY system, title ASC",
+ 'incomplete': "SELECT * FROM games WHERE progress = 3 AND ownership > 0 ORDER BY system, title ASC",
+ 'new': "SELECT * FROM games WHERE progress = 1 ORDER BY system, title ASC",
+ 'owned': "SELECT * FROM games WHERE ownership > 0 ORDER BY system, title ASC",
+ 'physical': "SELECT * FROM games WHERE ownership = 1 ORDER BY system, title ASC",
+ 'playlog': "SELECT * FROM games WHERE ownership > 0 AND progress = 2 ORDER BY system, title ASC",
+ 'unowned': "SELECT * FROM games WHERE ownership = 0 ORDER BY system, title ASC",
}
def kvmatch(arg, dict_map, fallback):
diff --git a/src/vgstash/test_vgstash_cli.py b/src/vgstash/test_vgstash_cli.py
index 7306a7d..faf87b2 100644
--- a/src/vgstash/test_vgstash_cli.py
+++ b/src/vgstash/test_vgstash_cli.py
@@ -16,6 +16,7 @@ def test_init():
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'])
@@ -24,6 +25,7 @@ def test_add_minimum():
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'])
@@ -32,6 +34,7 @@ def test_add_ownership():
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'])
@@ -40,6 +43,7 @@ def test_add_typical():
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'])
@@ -48,6 +52,7 @@ def test_add_full():
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'])
@@ -56,6 +61,7 @@ def test_add_full_note_with_newline():
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'])
@@ -70,6 +76,7 @@ def test_list():
'The Legend of Zelda|NES|2|2|\n',
))
+
def test_list_filter():
runner = CliRunner()
result = runner.invoke(vgstash_cli.cli, ['list', '-r', 'playlog'])
@@ -82,53 +89,56 @@ def test_list_filter():
'The Legend of Zelda|NES|2|2|\n',
))
+
def test_list_pretty():
- print()
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((
- ' ID | Title | System | Own | Progress ',
+ 'Title | System | Own | Progress ',
'--------------------------------------------------------------------------------',
- ' 3 | Sonic the Hedgehog 2 | Genesis | | B',
- ' 4 | Vectorman | Genesis | | B',
- ' 5 | Vectorman 2 | Genesis | P | P ',
- ' 1 | Super Mario Bros. | NES | P | P ',
- ' 2 | The Legend of Zelda | NES | D | P \n',
+ '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():
- print()
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((
- ' ID | Title | System | Own | Progress ',
+ 'Title | System | Own | Progress ',
'------------------------------------------------------------',
- ' 3 | Sonic the Hedgehog 2 | Genesis | | B',
- ' 4 | Vectorman | Genesis | | B',
- ' 5 | Vectorman 2 | Genesis | P | P ',
- ' 1 | Super Mario Bros. | NES | P | P ',
- ' 2 | The Legend of Zelda | NES | D | P \n'
+ '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():
- print()
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((
- ' ID | Title | System | Own | Progress ',
+ 'Title | System | Own | Progress ',
'--------------------------------------------------',
- ' 3 | Sonic the Hedg | Genesis | | B',
- ' 4 | Vectorman | Genesis | | B',
- ' 5 | Vectorman 2 | Genesis | P | P ',
- ' 1 | Super Mario Br | NES | P | P ',
- ' 2 | The Legend of | NES | D | P \n'
+ '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'
))