diff test/db_test_base.py @ 6151:ff059afae50a

Make 'find' work for rev_multilink properties
author Ralf Schlatterbeck <rsc@runtux.com>
date Fri, 01 May 2020 16:34:35 +0200
parents 8497bf3f23a1
children a701c9c81597
line wrap: on
line diff
--- a/test/db_test_base.py	Fri May 01 16:33:05 2020 +0200
+++ b/test/db_test_base.py	Fri May 01 16:34:35 2020 +0200
@@ -1564,6 +1564,33 @@
         got.sort()
         self.assertEqual(got, [one, three])
 
+    def testFindRevLinkMultilink(self):
+        ae, filter, filter_iter = self.filteringSetupTransitiveSearch('user')
+        ni = 'nosy_issues'
+        self.db.issue.set('6', nosy=['3', '4', '5'])
+        self.db.issue.set('7', nosy=['5'])
+        # After this setup we have the following values for nosy:
+        # issue  assignedto  nosy
+        # 1:      6          4
+        # 2:      6          5
+        # 3:      7
+        # 4:      8
+        # 5:      9
+        # 6:      10         3, 4, 5
+        # 7:      10         5
+        # 8:      10
+        # assignedto links back from 'issues'
+        # nosy links back from 'nosy_issues'
+        self.assertEqual(self.db.user.find(issues={'1':1}), ['6'])
+        self.assertEqual(self.db.user.find(issues={'8':1}), ['10'])
+        self.assertEqual(self.db.user.find(issues={'2':1, '5':1}), ['6', '9'])
+        self.assertEqual(self.db.user.find(nosy_issues={'8':1}), [])
+        self.assertEqual(self.db.user.find(nosy_issues={'6':1}),
+            ['3', '4', '5'])
+        self.assertEqual(self.db.user.find(nosy_issues={'3':1, '5':1}), [])
+        self.assertEqual(self.db.user.find(nosy_issues={'2':1, '6':1, '7':1}),
+            ['3', '4', '5'])
+
     def testFindLinkFail(self):
         self._find_test_setup()
         self.assertEqual(self.db.issue.find(status='4'), [])

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