Merge lp:~chipaca/u1db/u1db-client_delete-index into lp:u1db

Proposed by John Lenton
Status: Merged
Approved by: John A Meinel
Approved revision: 302
Merged at revision: 301
Proposed branch: lp:~chipaca/u1db/u1db-client_delete-index
Merge into: lp:u1db
Prerequisite: lp:~chipaca/u1db/u1db-client_list-indexes
Diff against target: 82 lines (+55/-0)
2 files modified
u1db/commandline/client.py (+23/-0)
u1db/tests/commandline/test_client.py (+32/-0)
To merge this branch: bzr merge lp:~chipaca/u1db/u1db-client_delete-index
Reviewer Review Type Date Requested Status
John A Meinel (community) Approve
Review via email: mp+106593@code.launchpad.net

Description of the change

delete ALL the indexes!

To post a comment you must log in.
Revision history for this message
John A Meinel (jameinel) wrote :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 5/21/2012 11:08 AM, John Lenton wrote:
> John Lenton has proposed merging
> lp:~chipaca/u1db/u1db-client_delete-index into lp:u1db with
> lp:~chipaca/u1db/u1db-client_list-indexes as a prerequisite.
>
> Requested reviews: Ubuntu One hackers (ubuntuone-hackers) Related
> bugs: Bug #1000720 in U1DB: "u1db-client should have support for
> managing indexes" https://bugs.launchpad.net/u1db/+bug/1000720
>
> For more details, see:
> https://code.launchpad.net/~chipaca/u1db/u1db-client_delete-index/+merge/106593
>
> delete ALL the indexes!

 merge: approve

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk+6LZgACgkQJdeBCYSNAAPUYQCgx+W5gKm+QaZE7l5fb4/bFgVg
qqgAmwR94JaMU4OXQKk/22skp87B+HEr
=9XTj
-----END PGP SIGNATURE-----

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'u1db/commandline/client.py'
2--- u1db/commandline/client.py 2012-05-21 09:07:20 +0000
3+++ u1db/commandline/client.py 2012-05-21 09:07:20 +0000
4@@ -276,5 +276,28 @@
5 client_commands.register(CmdListIndexes)
6
7
8+class CmdDeleteIndex(OneDbCmd):
9+ """Delete an index"""
10+
11+ name = "delete-index"
12+
13+ @classmethod
14+ def _populate_subparser(cls, parser):
15+ parser.add_argument('database', help='The local database to update',
16+ metavar='database-path')
17+ parser.add_argument('index', help='the name of the index')
18+
19+ def run(self, database, index):
20+ try:
21+ db = self._open(database, create=False)
22+ except errors.DatabaseDoesNotExist:
23+ self.stderr.write("Database does not exist.\n")
24+ return 1
25+ db.delete_index(index)
26+
27+
28+client_commands.register(CmdDeleteIndex)
29+
30+
31 def main(args):
32 return client_commands.run_argv(args, sys.stdin, sys.stdout, sys.stderr)
33
34=== modified file 'u1db/tests/commandline/test_client.py'
35--- u1db/tests/commandline/test_client.py 2012-05-21 09:07:20 +0000
36+++ u1db/tests/commandline/test_client.py 2012-05-21 09:07:20 +0000
37@@ -133,6 +133,12 @@
38 self.assertEqual(client.CmdListIndexes, args.subcommand)
39 self.assertEqual('db', args.database)
40
41+ def test_delete_index(self):
42+ args = self.parse_args(['delete-index', 'db', 'index'])
43+ self.assertEqual(client.CmdDeleteIndex, args.subcommand)
44+ self.assertEqual('db', args.database)
45+ self.assertEqual('index', args.index)
46+
47
48 class TestCaseWithDB(tests.TestCase):
49 """These next tests are meant to have one class per Command.
50@@ -400,6 +406,32 @@
51 self.assertEqual(cmd.stderr.getvalue(), 'Database does not exist.\n')
52
53
54+class TestCmdDeleteIndex(TestCaseWithDB):
55+
56+ def test_delete_index(self):
57+ self.db.create_index("foo", ["bar", "baz"])
58+ cmd = self.make_command(client.CmdDeleteIndex)
59+ retval = cmd.run(self.db_path, "foo")
60+ self.assertEqual(retval, None)
61+ self.assertEqual(cmd.stdout.getvalue(), '')
62+ self.assertEqual(cmd.stderr.getvalue(), '')
63+ self.assertEqual([], self.db.list_indexes())
64+
65+ def test_delete_index_no_db(self):
66+ cmd = self.make_command(client.CmdDeleteIndex)
67+ retval = cmd.run(self.db_path + "__DOES_NOT_EXIST", "foo")
68+ self.assertEqual(retval, 1)
69+ self.assertEqual(cmd.stdout.getvalue(), '')
70+ self.assertEqual(cmd.stderr.getvalue(), 'Database does not exist.\n')
71+
72+ def test_delete_index_no_index(self):
73+ cmd = self.make_command(client.CmdDeleteIndex)
74+ retval = cmd.run(self.db_path, "foo")
75+ self.assertEqual(retval, None)
76+ self.assertEqual(cmd.stdout.getvalue(), '')
77+ self.assertEqual(cmd.stderr.getvalue(), '')
78+
79+
80 class RunMainHelper(object):
81
82 def run_main(self, args, stdin=None):

Subscribers

People subscribed via source and target branches