Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/units/db/resource.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units/db/resource.py')
-rwxr-xr-xtests/units/db/resource.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/units/db/resource.py b/tests/units/db/resource.py
index 05aaddf..4bf80b7 100755
--- a/tests/units/db/resource.py
+++ b/tests/units/db/resource.py
@@ -483,6 +483,45 @@ class ResourceTest(tests.Test):
self.assertEqual('set2!', doc['prop1'])
self.assertEqual('set2!', doc['prop3'])
+ def test_diff_OutputRange(self):
+
+ class Document(db.Resource):
+
+ @db.stored_property()
+ def prop1(self, value):
+ return value
+
+ @db.stored_property()
+ def prop2(self, value):
+ return value
+
+ directory = Directory(tests.tmpdir, Document, IndexWriter, _SessionSeqno(), this.broadcast)
+
+ guid = directory.create({'prop1': '1', 'prop2': '1'})
+ self.utime('db', 0)
+
+ out_r = []
+ self.assertEqual({
+ 'guid': {'mtime': 0, 'value': guid},
+ 'prop1': {'mtime': 0, 'value': '1'},
+ 'prop2': {'mtime': 0, 'value': '1'},
+ },
+ directory[guid].diff([[1, None]], out_r))
+ self.assertEqual([[1, 1]], out_r)
+
+ directory.update(guid, {'prop1': '2'})
+ directory.update(guid, {'prop2': '2'})
+ self.utime('db', 0)
+
+ out_r = []
+ self.assertEqual({
+ 'guid': {'mtime': 0, 'value': guid},
+ 'prop1': {'mtime': 0, 'value': '2'},
+ 'prop2': {'mtime': 0, 'value': '2'},
+ },
+ directory[guid].diff([[1, None]], out_r))
+ self.assertEqual([[1, 3]], out_r)
+
class _SessionSeqno(object):