Merge lp:~cmiller/desktopcouch/record-expose-revid-bug445611 into lp:desktopcouch

Proposed by Chad Miller
Status: Merged
Approved by: Rodrigo Moya
Approved revision: not available
Merged at revision: not available
Proposed branch: lp:~cmiller/desktopcouch/record-expose-revid-bug445611
Merge into: lp:desktopcouch
Diff against target: 48 lines (+28/-2)
2 files modified
desktopcouch/records/record.py (+6/-2)
desktopcouch/records/tests/test_record.py (+22/-0)
To merge this branch: bzr merge lp:~cmiller/desktopcouch/record-expose-revid-bug445611
Reviewer Review Type Date Requested Status
Rodrigo Moya (community) Approve
Stuart Langridge (community) Approve
Review via email: mp+15953@code.launchpad.net

Commit message

Add a new attribute on Record class, so that users can get a record's
revision id without using ._dict or "_rev".

  n = r.record_revision # retreive revision. Will be None if just fabricated.
  r.record.revision = "foo" # raises AttributeError, as it is read-only.

To post a comment you must log in.
114. By Chad Miller

Change the test so we rely only on the guaranteed behavior of the
revision id.

Revision history for this message
Stuart Langridge (sil) wrote :

Good extra API feature, tests pass, happy with change.

review: Approve
Revision history for this message
Rodrigo Moya (rodrigo-moya) wrote :

Looks good to me, only one wrong comment in the function docs:

+ @property
13 + def record_revision(self):
14 + """Get the record type."""

it should say 'Get the record revision', right?

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'desktopcouch/records/record.py'
--- desktopcouch/records/record.py 2009-12-07 20:10:00 +0000
+++ desktopcouch/records/record.py 2009-12-10 15:39:14 +0000
@@ -382,5 +382,9 @@
382 @property382 @property
383 def record_type(self):383 def record_type(self):
384 """Get the record type."""384 """Get the record type."""
385 return self._data.setdefault('record_type', None)385 return self._data.setdefault('record_type', None) # Set if unset.
386 386
387 @property
388 def record_revision(self):
389 """Get the record type."""
390 return self._data.get('_rev', None) # Retreive only; comes from DB.
387391
=== modified file 'desktopcouch/records/tests/test_record.py'
--- desktopcouch/records/tests/test_record.py 2009-12-07 16:29:20 +0000
+++ desktopcouch/records/tests/test_record.py 2009-12-10 15:39:14 +0000
@@ -53,6 +53,28 @@
53 }53 }
54 self.record = Record(self.dict)54 self.record = Record(self.dict)
5555
56 def test_revision(self):
57 self.assertEquals(self.record.record_revision, None)
58 def set_rev(rec): rec.record_revision = "1"
59 self.assertRaises(AttributeError, set_rev, self.record)
60
61 ctx = test_environment.test_context
62 db = CouchDatabase('testing', create=True, ctx=ctx)
63 record_id = db.put_record(self.record)
64
65 retreived_record = db.get_record(record_id)
66 self.assertNotEquals(self.record.record_revision, None)
67
68 first = self.record.record_revision
69
70 record_id = db.put_record(self.record)
71 retreived_record = db.get_record(record_id)
72 second = self.record.record_revision
73
74 self.assertTrue(first < second)
75
76 db.delete_record(record_id)
77
56 def test_delitem(self):78 def test_delitem(self):
57 def f(r):79 def f(r):
58 del r["_id"]80 del r["_id"]

Subscribers

People subscribed via source and target branches