diff test/db_test_base.py @ 6412:a0c0ee3ed8b1

Tests for Link expressions .. and fixes for anydbm backend, this now passes all the new tests.
author Ralf Schlatterbeck <rsc@runtux.com>
date Mon, 17 May 2021 17:35:50 +0200
parents 978820fc88de
children 7b1b6dffc7ed
line wrap: on
line diff
--- a/test/db_test_base.py	Thu May 13 10:28:45 2021 +0200
+++ b/test/db_test_base.py	Mon May 17 17:35:50 2021 +0200
@@ -1854,13 +1854,36 @@
             ae(filt(None, {'status': '1'}, ('+','id'), grp), ['2','3'])
             ae(filt(None, {'status': [], 'status.name': 'unread'}), [])
             ae(filt(None, {a: '-1'}, ('+','id'), grp), ['3','4'])
-            # Currently works only for non-sql backends:
-            #ae(filt(None, {a: []}, ('+','id'), grp), ['3','4'])
             ae(filt(None, {a: None}, ('+','id'), grp), ['3','4'])
             ae(filt(None, {a: [None]}, ('+','id'), grp), ['3','4'])
             ae(filt(None, {a: ['-1', None]}, ('+','id'), grp), ['3','4'])
             ae(filt(None, {a: ['1', None]}, ('+','id'), grp), ['1', '3','4'])
 
+    @pytest.mark.xfail
+    def testFilteringLinkExpression(self):
+        ae, iiter = self.filteringSetup()
+        a = 'assignedto'
+        for filt in iiter():
+            ae(filt(None, {}, ('+',a)), ['3','4','1','2'])
+            ae(filt(None, {a: '1'}, ('+',a)), ['1'])
+            ae(filt(None, {a: '2'}, ('+',a)), ['2'])
+            ae(filt(None, {a: '-1'}, ('+','status')), ['4','3'])
+            ae(filt(None, {a: []}, ('+','id')), ['3','4'])
+            ae(filt(None, {a: ['-1']}, ('+',a)), ['3','4'])
+            ae(filt(None, {a: []}, ('+',a)), ['3','4'])
+            ae(filt(None, {a: '-1'}, ('+',a)), ['3','4'])
+            ae(filt(None, {a: ['1','-1']}), ['1','3','4'])
+            ae(filt(None, {a: ['1','-1']}, ('+',a)), ['3','4','1'])
+            ae(filt(None, {a: ['2','-1']}, ('+',a)), ['3','4','2'])
+            ae(filt(None, {a: ['1','-2']}), ['2','3','4'])
+            ae(filt(None, {a: ['1','-2']}, ('+',a)), ['3','4','2'])
+            ae(filt(None, {a: ['-1','-2']}, ('+',a)), ['1','2'])
+            ae(filt(None, {a: ['1','2','-3']}, ('+',a)), [])
+            ae(filt(None, {a: ['1','2','-4']}, ('+',a)), ['1','2'])
+            ae(filt(None, {a: ['1','-2','2','-2','-3']}, ('+',a)), ['3','4'])
+            ae(filt(None, {a: ['1','-2','2','-2','-4']}, ('+',a)),
+                ['3','4','1','2'])
+
     def testFilteringRevLink(self):
         ae, iiter = self.filteringSetupTransitiveSearch('user')
         # We have

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