Merge lp:~jameinel/u1db/index-bug into lp:u1db

Proposed by John A Meinel
Status: Merged
Approved by: Samuele Pedroni
Approved revision: 95
Merged at revision: 97
Proposed branch: lp:~jameinel/u1db/index-bug
Merge into: lp:u1db
Diff against target: 32 lines (+11/-0)
2 files modified
u1db/backends/inmemory.py (+2/-0)
u1db/tests/test_backends.py (+9/-0)
To merge this branch: bzr merge lp:~jameinel/u1db/index-bug
Reviewer Review Type Date Requested Status
Samuele Pedroni Approve
Review via email: mp+80934@code.launchpad.net

Description of the change

Fixes a bug in InMemoryIndex and adds a per-backend test for it.

To post a comment you must log in.
Revision history for this message
Samuele Pedroni (pedronis) wrote :

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'u1db/backends/inmemory.py'
2--- u1db/backends/inmemory.py 2011-10-28 09:17:26 +0000
3+++ u1db/backends/inmemory.py 2011-11-01 18:32:24 +0000
4@@ -196,6 +196,8 @@
5 def remove_json(self, doc_id, doc):
6 """Remove this json doc from the index."""
7 key = self.evaluate_json(doc)
8+ if key is None:
9+ return
10 doc_ids = self._values[key]
11 doc_ids.remove(doc_id)
12 if not doc_ids:
13
14=== modified file 'u1db/tests/test_backends.py'
15--- u1db/tests/test_backends.py 2011-10-28 09:17:26 +0000
16+++ u1db/tests/test_backends.py 2011-11-01 18:32:24 +0000
17@@ -263,6 +263,15 @@
18 self.assertEqual([(doc_id, new_doc_rev, new_doc)],
19 self.db.get_from_index('test-idx', [('altval',)]))
20
21+ def test_put_updates_when_adding_key(self):
22+ doc_id, doc_rev = self.db.create_doc("{}")
23+ self.db.create_index('test-idx', ['key'])
24+ self.assertEqual([],
25+ self.db.get_from_index('test-idx', [('*',)]))
26+ new_doc_rev = self.db.put_doc(doc_id, doc_rev, simple_doc)
27+ self.assertEqual([(doc_id, new_doc_rev, simple_doc)],
28+ self.db.get_from_index('test-idx', [('*',)]))
29+
30 def test_get_all_from_index(self):
31 self.db.create_index('test-idx', ['key'])
32 doc1_id, doc1_rev = self.db.create_doc(simple_doc)

Subscribers

People subscribed via source and target branches