diff test/db_test_base.py @ 4490:559d9a2a0191

Fixed bug in filter_iter refactoring (lazy multilinks)... ...in rare cases this would result in duplicate multilinks to the same node. We're now going the safe route and doing lazy evaluation only for read-only access, whenever updates are done we fetch everything.
author Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
date Sat, 16 Apr 2011 11:02:01 +0000
parents 1613754d2646
children 46239c21a1eb
line wrap: on
line diff
--- a/test/db_test_base.py	Fri Apr 15 19:04:08 2011 +0000
+++ b/test/db_test_base.py	Sat Apr 16 11:02:01 2011 +0000
@@ -321,6 +321,23 @@
             if commit: self.db.commit()
             self.assertEqual(self.db.issue.get(nid, "nosy"), [])
 
+    def testMakeSeveralMultilinkedNodes(self):
+        for commit in (0,1):
+            u1 = self.db.user.create(username='foo%s'%commit)
+            u2 = self.db.user.create(username='bar%s'%commit)
+            u3 = self.db.user.create(username='baz%s'%commit)
+            nid = self.db.issue.create(title="spam", nosy=[u1])
+            if commit: self.db.commit()
+            self.assertEqual(self.db.issue.get(nid, "nosy"), [u1])
+            self.db.issue.set(nid, deadline=date.Date('.'))
+            self.db.issue.set(nid, nosy=[u1,u2], title='ta%s'%commit)
+            if commit: self.db.commit()
+            self.assertEqual(self.db.issue.get(nid, "nosy"), [u1,u2])
+            self.db.issue.set(nid, deadline=date.Date('.'))
+            self.db.issue.set(nid, nosy=[u1,u2,u3], title='tb%s'%commit)
+            if commit: self.db.commit()
+            self.assertEqual(self.db.issue.get(nid, "nosy"), [u1,u2,u3])
+
     def testMultilinkChangeIterable(self):
         for commit in (0,1):
             # invalid nosy value assertion

Roundup Issue Tracker: http://roundup-tracker.org/