comparison test/db_test_base.py @ 6118:e6073c2291c6

Better Date filtering Allow filtering by multiple date ranges or empty date. Date ranges are separated by comma, an empty date is represented by '-'.
author Ralf Schlatterbeck <rsc@runtux.com>
date Mon, 02 Mar 2020 19:02:16 +0100
parents 15d1ce536c73
children 8497bf3f23a1
comparison
equal deleted inserted replaced
6117:bfb30ed10297 6118:e6073c2291c6
1880 1880
1881 for month in range(1, 13): 1881 for month in range(1, 13):
1882 for filt in filter, filter_iter: 1882 for filt in filter, filter_iter:
1883 r = filt(None, dict(deadline='2001-%02d'%month)) 1883 r = filt(None, dict(deadline='2001-%02d'%month))
1884 assert len(r) == month, 'month %d != length %d'%(month, len(r)) 1884 assert len(r) == month, 'month %d != length %d'%(month, len(r))
1885
1886 def testFilteringDateRangeMulti(self):
1887 ae, filter, filter_iter = self.filteringSetup()
1888 self.db.issue.create(title='no deadline')
1889 self.db.commit()
1890 for filt in filter, filter_iter:
1891 r = filt (None, dict(deadline='-'))
1892 self.assertEqual(r, ['5'])
1893 r = filt (None, dict(deadline=';2003-02-01,2004;'))
1894 self.assertEqual(r, ['2', '4'])
1895 r = filt (None, dict(deadline='-,;2003-02-01,2004;'))
1896 self.assertEqual(r, ['2', '4', '5'])
1885 1897
1886 def testFilteringRangeInterval(self): 1898 def testFilteringRangeInterval(self):
1887 ae, filter, filter_iter = self.filteringSetup() 1899 ae, filter, filter_iter = self.filteringSetup()
1888 for filt in filter, filter_iter: 1900 for filt in filter, filter_iter:
1889 ae(filt(None, {'foo': 'from 0:50 to 2:00'}), ['1']) 1901 ae(filt(None, {'foo': 'from 0:50 to 2:00'}), ['1'])

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