@@ -42,6 +42,12 @@ class FeatureSourceTestCase(object):
42
42
43
43
'''
44
44
45
+ def enable_datetime_checks (self ):
46
+ return True
47
+
48
+ def enable_time_checks (self ):
49
+ return True
50
+
45
51
def testCrs (self ):
46
52
self .assertEqual (self .source .sourceCrs ().authid (), 'EPSG:4326' )
47
53
@@ -289,13 +295,16 @@ def runGetFeatureTests(self, source):
289
295
[1 , 2 ])
290
296
291
297
# datetime
292
- self .assert_query (source , '"dt" <= make_datetime(2020, 5, 4, 12, 13, 14)' , [1 , 5 ])
293
- self .assert_query (source , '"dt" < make_date(2020, 5, 4)' , [1 ])
298
+ if self .enable_datetime_checks ():
299
+ self .assert_query (source , '"dt" <= make_datetime(2020, 5, 4, 12, 13, 14)' , [1 , 5 ])
300
+ self .assert_query (source , '"dt" < make_date(2020, 5, 4)' , [1 ])
294
301
self .assert_query (source , '"date" <= make_datetime(2020, 5, 4, 12, 13, 14)' , [1 , 2 , 5 ])
295
302
self .assert_query (source , '"date" >= make_date(2020, 5, 4)' , [2 , 4 ])
296
- self .assert_query (source , '"time" >= make_time(12, 14, 14)' , [2 , 4 ])
297
- self .assert_query (source , '"dt" + make_interval(days:=1) <= make_datetime(2020, 5, 4, 12, 13, 14)' , [1 ])
298
- self .assert_query (source , '"dt" + make_interval(days:=0.01) <= make_datetime(2020, 5, 4, 12, 13, 14)' , [1 , 5 ])
303
+ if self .enable_time_checks ():
304
+ self .assert_query (source , '"time" >= make_time(12, 14, 14)' , [2 , 4 ])
305
+ if self .enable_datetime_checks ():
306
+ self .assert_query (source , '"dt" + make_interval(days:=1) <= make_datetime(2020, 5, 4, 12, 13, 14)' , [1 ])
307
+ self .assert_query (source , '"dt" + make_interval(days:=0.01) <= make_datetime(2020, 5, 4, 12, 13, 14)' , [1 , 5 ])
299
308
300
309
# combination of an uncompilable expression and limit
301
310
@@ -769,26 +778,32 @@ def testUniqueValues(self):
769
778
assert set (['Apple' , 'Honey' , 'Orange' , 'Pear' , NULL ]) == set (
770
779
self .source .uniqueValues (self .source .fields ().lookupField ('name' ))), 'Got {}' .format (
771
780
set (self .source .uniqueValues (self .source .fields ().lookupField ('name' ))))
772
- self .assertEqual (set (self .source .uniqueValues (self .source .fields ().lookupField ('dt' ))),
773
- set ([QDateTime (2021 , 5 , 4 , 13 , 13 , 14 ), QDateTime (2020 , 5 , 4 , 12 , 14 , 14 ), QDateTime (2020 , 5 , 4 , 12 , 13 , 14 ), QDateTime (2020 , 5 , 3 , 12 , 13 , 14 ), NULL ]))
781
+ if self .enable_datetime_checks ():
782
+ self .assertEqual (set (self .source .uniqueValues (self .source .fields ().lookupField ('dt' ))),
783
+ set ([QDateTime (2021 , 5 , 4 , 13 , 13 , 14 ), QDateTime (2020 , 5 , 4 , 12 , 14 , 14 ), QDateTime (2020 , 5 , 4 , 12 , 13 , 14 ), QDateTime (2020 , 5 , 3 , 12 , 13 , 14 ), NULL ]))
774
784
self .assertEqual (set (self .source .uniqueValues (self .source .fields ().lookupField ('date' ))),
775
785
set ([QDate (2020 , 5 , 3 ), QDate (2020 , 5 , 4 ), QDate (2021 , 5 , 4 ), QDate (2020 , 5 , 2 ), NULL ]))
776
- self .assertEqual (set (self .source .uniqueValues (self .source .fields ().lookupField ('time' ))),
777
- set ([QTime (12 , 14 , 14 ), QTime (13 , 13 , 14 ), QTime (12 , 13 , 14 ), QTime (12 , 13 , 1 ), NULL ]))
786
+ if self .enable_time_checks ():
787
+ self .assertEqual (set (self .source .uniqueValues (self .source .fields ().lookupField ('time' ))),
788
+ set ([QTime (12 , 14 , 14 ), QTime (13 , 13 , 14 ), QTime (12 , 13 , 14 ), QTime (12 , 13 , 1 ), NULL ]))
778
789
779
790
def testMinimumValue (self ):
780
791
self .assertEqual (self .source .minimumValue (self .source .fields ().lookupField ('cnt' )), - 200 )
781
792
self .assertEqual (self .source .minimumValue (self .source .fields ().lookupField ('name' )), 'Apple' )
782
- self .assertEqual (self .source .minimumValue (self .source .fields ().lookupField ('dt' )), QDateTime (QDate (2020 , 5 , 3 ), QTime (12 , 13 , 14 )))
793
+ if self .enable_datetime_checks ():
794
+ self .assertEqual (self .source .minimumValue (self .source .fields ().lookupField ('dt' )), QDateTime (QDate (2020 , 5 , 3 ), QTime (12 , 13 , 14 )))
783
795
self .assertEqual (self .source .minimumValue (self .source .fields ().lookupField ('date' )), QDate (2020 , 5 , 2 ))
784
- self .assertEqual (self .source .minimumValue (self .source .fields ().lookupField ('time' )), QTime (12 , 13 , 1 ))
796
+ if self .enable_time_checks ():
797
+ self .assertEqual (self .source .minimumValue (self .source .fields ().lookupField ('time' )), QTime (12 , 13 , 1 ))
785
798
786
799
def testMaximumValue (self ):
787
800
self .assertEqual (self .source .maximumValue (self .source .fields ().lookupField ('cnt' )), 400 )
788
801
self .assertEqual (self .source .maximumValue (self .source .fields ().lookupField ('name' )), 'Pear' )
789
- self .assertEqual (self .source .maximumValue (self .source .fields ().lookupField ('dt' )), QDateTime (QDate (2021 , 5 , 4 ), QTime (13 , 13 , 14 )))
802
+ if self .enable_datetime_checks ():
803
+ self .assertEqual (self .source .maximumValue (self .source .fields ().lookupField ('dt' )), QDateTime (QDate (2021 , 5 , 4 ), QTime (13 , 13 , 14 )))
790
804
self .assertEqual (self .source .maximumValue (self .source .fields ().lookupField ('date' )), QDate (2021 , 5 , 4 ))
791
- self .assertEqual (self .source .maximumValue (self .source .fields ().lookupField ('time' )), QTime (13 , 13 , 14 ))
805
+ if self .enable_time_checks ():
806
+ self .assertEqual (self .source .maximumValue (self .source .fields ().lookupField ('time' )), QTime (13 , 13 , 14 ))
792
807
793
808
def testAllFeatureIds (self ):
794
809
ids = set ([f .id () for f in self .source .getFeatures ()])
0 commit comments