From 3ec2a2902caaf3e70deea650425339299af5d821 Mon Sep 17 00:00:00 2001 From: zlg <zlg@zlg.space> Date: Thu, 18 Oct 2018 16:36:39 -0700 Subject: Catch when an invalid list filter is passed Before, vgstash.DB.list_games() would default to 'allgames' and silently hide it when a filter wasn't found. This commit ensures that the vgstash package and CLI both indicate when an invalid filter is passed to them: * vgstash.DB.list_games() will return False on a failure to match; * vgstash_cli uses Click's Choice object to enforce the constraint --- tests/test_vgstash.py | 4 ++++ tests/test_vgstash_cli.py | 7 +++++++ 2 files changed, 11 insertions(+) (limited to 'tests') diff --git a/tests/test_vgstash.py b/tests/test_vgstash.py index 74f3c43..43cd639 100644 --- a/tests/test_vgstash.py +++ b/tests/test_vgstash.py @@ -129,6 +129,10 @@ def test_db_list_games(vgstash_db): assert isinstance(res, list) assert isinstance(res[0], sqlite3.Row) +def test_db_list_games_not_found(vgstash_db): + res = vgstash_db.list_games("derp") + assert res == False + 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") diff --git a/tests/test_vgstash_cli.py b/tests/test_vgstash_cli.py index 02f0d81..f34f2d1 100644 --- a/tests/test_vgstash_cli.py +++ b/tests/test_vgstash_cli.py @@ -99,6 +99,13 @@ def test_list_filter(): 'The Legend of Zelda|NES|2|2|\n', )) +def test_list_filter_invalid(): + runner = CliRunner() + result = runner.invoke(vgstash_cli.cli, ['list', '-r', 'derp']) + if verbose: + print(result.output) + assert result.exit_code != 0 + def test_list_pretty(): runner = CliRunner() -- cgit v1.2.3-54-g00ecf ange</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/vgstash/log/?h=v0.3b5&follow=1'>root</a>/<a href='/vgstash/log/src?h=v0.3b5&follow=1'>src</a>/<a href='/vgstash/log/src/vgstash?h=v0.3b5&follow=1'>vgstash</a>/<a href='/vgstash/log/src/vgstash/test_vgstash_cli.py?h=v0.3b5&follow=1'>test_vgstash_cli.py</a> (<a href='/vgstash/log/src/vgstash/test_vgstash_cli.py?h=v0.3b5'>unfollow</a>)</div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/vgstash/log/src/vgstash/test_vgstash_cli.py?h=v0.3b5&showmsg=1&follow=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr> <tr><td><span title='2020-03-08 08:25:56 -0700'>2020-03-08</span></td><td><a href='/vgstash/commit/scripts/helpers.sh?h=v0.3b5&id=ba0c8f06015763bf30d280af8bf5eb093e6c119b&follow=1'>helpers.sh: Add vgub, vgmulti, vgrand</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+29</span></td></tr> <tr><td><span title='2020-03-02 21:32:45 -0800'>2020-03-02</span></td><td><a href='/vgstash/commit/tests/test_vgstash_cli.py?h=v0.3b5&id=6342e1479d6390a3101e715ff67c4983753cc7db&follow=1'>Avoid a backtrace when editing notes on an invalid game</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+24</span></td></tr> <tr><td><span title='2020-03-02 21:09:00 -0800'>2020-03-02</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=284b5946c61cc39d8aa880554ce5ba363285c5fc&follow=1'>Avoid a backtrace when updating an invalid game</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-4</span>/<span class='insertions'>+8</span></td></tr> <tr><td><span title='2019-04-30 20:34:15 -0700'>2019-04-30</span></td><td><a href='/vgstash/commit/tests/test_vgstash_cli.py?h=v0.3b5&id=cee2897b1e5ace4a697d40450d87d53d0ef3a853&follow=1'>Release version 0.3 beta 4</a></td><td>zlg</td><td>4</td><td><span class='deletions'>-42</span>/<span class='insertions'>+100</span></td></tr> <tr><td><span title='2019-04-29 18:14:23 -0700'>2019-04-29</span></td><td><a href='/vgstash/commit/README.md?h=v0.3b5&id=c032a56d02fdc122667d79a3ba4905b89d99ba62&follow=1'>README.md: Clarify a few details</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-4</span>/<span class='insertions'>+2</span></td></tr> <tr><td><span title='2019-04-29 18:09:44 -0700'>2019-04-29</span></td><td><a href='/vgstash/commit/setup.py?h=v0.3b5&id=ce04af1d47f511a88f66c57c057e2a9394d30f96&follow=1'>setup.py: Remove obsolete information</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+0</span></td></tr> <tr><td><span title='2019-01-03 05:40:16 -0800'>2019-01-03</span></td><td><a href='/vgstash/commit/src/vgstash/__init__.py?h=v0.3b5&id=6c59e9df6dcbf3cc2daaac9b40cdfe8a6859c690&follow=1'>vgstash: Add "notes" filter to schema</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+2</span></td></tr> <tr><td><span title='2018-11-21 04:26:06 -0800'>2018-11-21</span></td><td><a href='/vgstash/commit/setup.py?h=v0.3b5&id=669226bc1e33e008449145535aa678da8108f845&follow=1'>Prepare for distribution</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+3</span></td></tr> <tr><td><span title='2018-10-22 02:47:47 -0700'>2018-10-22</span></td><td><a href='/vgstash/commit/src/vgstash/__init__.py?h=v0.3b5&id=dc2797941701af6f36482203355b3fbd24777143&follow=1'>vgstash: let backlog filter ignore unbeatable games</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td><span title='2018-10-18 21:18:03 -0700'>2018-10-18</span></td><td><a href='/vgstash/commit/setup.py?h=v0.3b5&id=e7bccb17a6dfffd71349ab265906740562047101&follow=1'>Bump to 0.3beta2 for PyPI</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-3</span>/<span class='insertions'>+3</span></td></tr> <tr><td><span title='2018-10-18 21:14:38 -0700'>2018-10-18</span></td><td><a href='/vgstash/commit/src/vgstash/__init__.py?h=v0.3b5&id=93f42bbcbf2c5a17f92b3d8f0b1ec9a767fd210b&follow=1'>vgstash.DB.__init__: fix error output formatting</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td><span title='2018-10-18 21:06:58 -0700'>2018-10-18</span></td><td><a href='/vgstash/commit/README.md?h=v0.3b5&id=deb34f6cb8902277ac4cf4feca1b44c1ba085f98&follow=1'>README: fix inline <code> formatting</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-3</span>/<span class='insertions'>+4</span></td></tr> <tr><td><span title='2018-10-18 21:02:53 -0700'>2018-10-18</span></td><td><a href='/vgstash/commit/tests/test_vgstash_cli.py?h=v0.3b5&id=69373e362637b5e89ee347c9874f5f8c4ec6a294&follow=1'>cli: show msg if game to be deleted is not in DB</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+12</span></td></tr> <tr><td><span title='2018-10-18 20:22:21 -0700'>2018-10-18</span></td><td><a href='/vgstash/commit/README.md?h=v0.3b5&id=1518ccd7f43724a8f6f4b7024d875a78b5e0c9de&follow=1'>README: expand on usage, cover shell quoting</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-7</span>/<span class='insertions'>+99</span></td></tr> <tr><td><span title='2018-10-18 18:14:52 -0700'>2018-10-18</span></td><td><a href='/vgstash/commit/tests/test_vgstash_cli.py?h=v0.3b5&id=09e2c47970a02be5a7e79a67b335f274f4c2c866&follow=1'>cli: Tell the user when a game lacks notes</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-3</span>/<span class='insertions'>+15</span></td></tr> <tr><td><span title='2018-10-18 16:36:39 -0700'>2018-10-18</span></td><td><a href='/vgstash/commit/tests/test_vgstash_cli.py?h=v0.3b5&id=3ec2a2902caaf3e70deea650425339299af5d821&follow=1'>Catch when an invalid list filter is passed</a></td><td>zlg</td><td>4</td><td><span class='deletions'>-3</span>/<span class='insertions'>+24</span></td></tr> <tr><td><span title='2018-10-12 17:50:53 -0700'>2018-10-12</span></td><td><a href='/vgstash/commit/tests/test_vgstash_cli.py?h=v0.3b5&id=c7d09704fb911d59139aff5ad0ab4c35a2ed9493&follow=1'>cli: Add zero-game import/export messages</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-11</span>/<span class='insertions'>+18</span></td></tr> <tr><td><span title='2018-10-10 21:31:02 -0700'>2018-10-10</span></td><td><a href='/vgstash/commit/setup.py?h=v0.3b5&id=8f72ad7e25595530035b504ecab86fbc98c8ee42&follow=1'>Bump to 0.3beta1 for PyPI</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td><span title='2018-10-10 21:29:08 -0700'>2018-10-10</span></td><td><a href='/vgstash/commit/tox.ini?h=v0.3b5&id=8775fcd12876f3acc5f9b919afe1cf3be238a186&follow=1'>Move tests and data to dedicated directory</a></td><td>zlg</td><td>7</td><td><span class='deletions'>-10</span>/<span class='insertions'>+26</span></td></tr> <tr><td><span title='2018-10-10 20:49:02 -0700'>2018-10-10</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=411e47351c996aa1d1f19dc10366ee824d091b40&follow=1'>cli: Add "export" command</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-5</span>/<span class='insertions'>+54</span></td></tr> <tr><td><span title='2018-10-10 19:44:18 -0700'>2018-10-10</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=669aed9ec7261c49c49ed26c31f218e42faa491a&follow=1'>cli: Add "import" command</a></td><td>zlg</td><td>5</td><td><span class='deletions'>-1</span>/<span class='insertions'>+76</span></td></tr> <tr><td><span title='2018-10-09 23:43:36 -0700'>2018-10-09</span></td><td><a href='/vgstash/commit/setup.py?h=v0.3b5&id=56afecfa2831ed492f35e43de6ace1f0355c4c16&follow=1'>Bump to 0.3alpha6 for PyPI</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td><span title='2018-10-09 23:32:23 -0700'>2018-10-09</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=2fad4b705166d8bd8cd9783c16856d07c470d3e0&follow=1'>cli: Add "notes" command</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-4</span>/<span class='insertions'>+74</span></td></tr> <tr><td><span title='2018-10-09 23:30:29 -0700'>2018-10-09</span></td><td><a href='/vgstash/commit/src/vgstash/__init__.py?h=v0.3b5&id=bf567438a9720c18f7e0045f4b198cf143fa7053&follow=1'>update_game: ensure notes are also saved</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr> <tr><td><span title='2018-10-09 04:33:52 -0700'>2018-10-09</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=ac3e84c9438ef964a08f2acf40ab58fe1c04675e&follow=1'>cli: add 'update' command</a></td><td>zlg</td><td>3</td><td><span class='deletions'>-20</span>/<span class='insertions'>+92</span></td></tr> <tr><td><span title='2018-10-06 22:28:40 -0700'>2018-10-06</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=9da20483b8aa26a3090093212d007e6dc756b2d2&follow=1'>cli: Add "delete" command</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-0</span>/<span class='insertions'>+19</span></td></tr> <tr><td><span title='2018-10-06 22:26:21 -0700'>2018-10-06</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=e5875bb6b73f91db5a9982e2816de649e9bc4ef6&follow=1'>Remove ID field from DB</a></td><td>zlg</td><td>3</td><td><span class='deletions'>-38</span>/<span class='insertions'>+46</span></td></tr> <tr><td><span title='2018-10-06 22:04:53 -0700'>2018-10-06</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=9de7357d758ab2253061ce7d68fb3942b52ee7a3&follow=1'>cli: change "Status" heading to "Progress"</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-36</span>/<span class='insertions'>+40</span></td></tr> <tr><td><span title='2018-09-29 23:34:59 -0700'>2018-09-29</span></td><td><a href='/vgstash/commit/setup.py?h=v0.3b5&id=aef722de5512a4770d91d718194c01bc77844687&follow=1'>Bump to 0.3alpha5 for PyPI</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td><span title='2018-09-29 23:34:35 -0700'>2018-09-29</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=7288560c5678991527c7b2c2ed0d7f3979f70c67&follow=1'>cli: Add pretty printing to 'list' command</a></td><td>zlg</td><td>3</td><td><span class='deletions'>-17</span>/<span class='insertions'>+107</span></td></tr> <tr><td><span title='2018-09-08 19:31:52 -0700'>2018-09-08</span></td><td><a href='/vgstash/commit/setup.py?h=v0.3b5&id=5979307c0a0197d20b3c1d92a9c391cd75731042&follow=1'>setup.py: Bump to alpha4 for PyPI</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td><span title='2018-09-08 19:15:48 -0700'>2018-09-08</span></td><td><a href='/vgstash/commit/src/vgstash_cli.py?h=v0.3b5&id=b2d47d2ca978e2cd62be4cb6fe0471598427b8b7&follow=1'>cli: add '--raw' option to list command</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-9</span>/<span class='insertions'>+45</span></td></tr> <tr><td><span title='2018-09-08 19:07:36 -0700'>2018-09-08</span></td><td><a href='/vgstash/commit/src/vgstash/__init__.py?h=v0.3b5&id=14162a862e50c35f44370daf1f525b27f3bafc85&follow=1'>Add remaining filters to vgstash package</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+11</span></td></tr> <tr><td><span title='2018-09-04 23:43:49 -0700'>2018-09-04</span></td><td><a href='/vgstash/commit/LICENSE?h=v0.3b5&id=eee8ed0c7b4de40f3568bdc08ad4af4837b54341&follow=1'>Update LICENSE to match setup.py</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-80</span>/<span class='insertions'>+67</span></td></tr> <tr><td><span title='2018-09-03 02:55:21 -0700'>2018-09-03</span></td><td><a href='/vgstash/commit/vgstash?h=v0.3b5&id=565812a92cd22d41aa6f5f85a6b451386422fb4a&follow=1'>Branch off from master with pytest, tox, click</a></td><td>zlg</td><td>16</td><td><span class='deletions'>-778</span>/<span class='insertions'>+779</span></td></tr> <tr><td><span title='2018-03-18 21:48:41 -0700'>2018-03-18</span></td><td><a href='/vgstash/commit/vgstash?h=v0.3b5&id=9ec059873772b201ff8fc3b124f6d2b942493e84&follow=1'>Flesh out filter types and ownership status</a></td><td>zlg</td><td>3</td><td><span class='deletions'>-82</span>/<span class='insertions'>+144</span></td></tr> <tr><td><span title='2018-03-18 17:53:47 -0700'>2018-03-18</span></td><td><a href='/vgstash/commit/README.mdown?h=v0.3b5&id=7171b4b21a773fd3013f0e465e8eb69e8c220128&follow=1'>README.mdown: break line correctly</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td><span title='2018-03-18 17:50:07 -0700'>2018-03-18</span></td><td><a href='/vgstash/commit/vgstash?h=v0.3b5&id=7686f310447e56518d3959c0aa7d62a69c3fb789&follow=1'>add 'playlog' list filter</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+9</span></td></tr> <tr><td><span title='2018-03-13 13:21:18 -0700'>2018-03-13</span></td><td><a href='/vgstash/commit/scripts/helpers.sh?h=v0.3b5&id=baecc58c1a1d246bbe032fcd0ca22106082d5db5&follow=1'>Update helpers a bit</a></td><td>zlg</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+9</span></td></tr> <tr><td><span title='2018-03-13 13:16:41 -0700'>2018-03-13</span></td><td><a href='/vgstash/commit/vgstash?h=v0.3b5&id=acd531782fc521c6af2c38154b05a36306b92093&follow=1'>Make VGSTASH_DB_LOCATION point to a file</a></td><td>zlg</td><td>2</td><td><span class='deletions'>-21</span>/<span class='insertions'>+20</span></td></tr> <tr><td><span title='2016-11-18 02:03:23 -0800'>2016-11-18</span></td><td><a href='/vgstash/commit/scripts/helpers.sh?h=v0.3b5&id=e5abc98d05231cfb0c1a99248050773b23019860&follow=1'>Remove settings from helpers.sh</a></td><td>Ze Libertine Gamer</td><td>1</td><td><span class='deletions'>-5</span>/<span class='insertions'>+0</span></td></tr> <tr><td><span title='2016-11-15 06:09:09 -0800'>2016-11-15</span></td><td><a href='/vgstash/commit/README.mdown?h=v0.3b5&id=8296b242f281eae5f2aff8cd9e223bdc66edf168&follow=1'>Correct phrasing in README.</a></td><td>Ze Libertine Gamer</td><td>1</td><td><span class='deletions'>-4</span>/<span class='insertions'>+4</span></td></tr> <tr><td><span title='2016-11-13 22:48:27 -0800'>2016-11-13</span></td><td><a href='/vgstash/commit/scripts/system-search.sh?h=v0.3b5&id=a90ed3b7086677c04bc4c42fb867d75e1dfd64d6&follow=1'>Derp</a></td><td>Ze Libertine Gamer</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr> <tr><td><span title='2016-11-03 07:02:05 -0700'>2016-11-03</span></td><td><a href='/vgstash/commit/scripts/updater.sh?h=v0.3b5&id=017536123a5d334759ed54aff610b22a8d6c8254&follow=1'>Improve error handling in shell scripts</a></td><td>Ze Libertine Gamer</td><td>4</td><td><span class='deletions'>-3</span>/<span class='insertions'>+23</span></td></tr> <tr><td><span title='2016-10-24 07:07:11 -0700'>2016-10-24</span></td><td><a href='/vgstash/commit/scripts/updater.sh?h=v0.3b5&id=7f735dbe7544bf2837b1fa5fac38d3f001a8bb99&follow=1'>Correct run_again, add recursion</a></td><td>Ze Libertine Gamer</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+4</span></td></tr> <tr><td><span title='2016-10-21 03:17:35 -0700'>2016-10-21</span></td><td><a href='/vgstash/commit/scripts/updater.sh?h=v0.3b5&id=1e6ce821f04beb4944327d13f506449015ebd4a4&follow=1'>Add quotes to correct behavior for arglist</a></td><td>Ze Libertine Gamer</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td><span title='2016-10-14 05:02:55 -0700'>2016-10-14</span></td><td><a href='/vgstash/commit/scripts/updater.sh?h=v0.3b5&id=7381b374e7508ece3584975f912032b8641d7ef0&follow=1'>updater.sh: add recursion, error handling</a></td><td>Ze Libertine Gamer</td><td>1</td><td><span class='deletions'>-43</span>/<span class='insertions'>+101</span></td></tr> <tr><td><span title='2016-10-14 05:01:25 -0700'>2016-10-14</span></td><td><a href='/vgstash/commit/vgstash?h=v0.3b5&id=5907704f1a969052b7adf6e955cc17f0684b378b&follow=1'>Correct pipe-handling behavior</a></td><td>Ze Libertine Gamer</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+9</span></td></tr> <tr><td><span title='2016-10-12 02:51:22 -0700'>2016-10-12</span></td><td><a href='/vgstash/commit/README.mdown?h=v0.3b5&id=a0dc30263d6a8effa747d4e9a7430420f901cc2f&follow=1'>Clarify a method to move between platforms</a></td><td>Ze Libertine Gamer</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+5</span></td></tr>