@@ -282,12 +282,22 @@ def test_eq(self):
282
282
self .assert_filter_query (filter , "WHERE persons.due_date = '2010-12-31'" )
283
283
eq_ (filter .description , '12/31/2010' )
284
284
285
+ def test_eq_none (self ):
286
+ filter = DateFilter (Person .due_date )
287
+ with assert_raises (formencode .Invalid ):
288
+ filter .set ('eq' , None )
289
+
285
290
def test_not_eq (self ):
286
291
filter = DateFilter (Person .due_date )
287
292
filter .set ('!eq' , '12/31/2010' )
288
293
self .assert_filter_query (filter , "WHERE persons.due_date != '2010-12-31'" )
289
294
eq_ (filter .description , 'excluding 12/31/2010' )
290
295
296
+ def test_not_eq_none (self ):
297
+ filter = DateFilter (Person .due_date )
298
+ with assert_raises (formencode .Invalid ):
299
+ filter .set ('!eq' , None )
300
+
291
301
def test_lte (self ):
292
302
filter = DateFilter (Person .due_date )
293
303
filter .set ('lte' , '12/31/2010' )
@@ -296,12 +306,22 @@ def test_lte(self):
296
306
with assert_raises (formencode .Invalid ):
297
307
filter .set ('lte' , '' )
298
308
309
+ def test_lte_none (self ):
310
+ filter = DateFilter (Person .due_date )
311
+ with assert_raises (formencode .Invalid ):
312
+ filter .set ('lte' , None )
313
+
299
314
def test_gte (self ):
300
315
filter = DateFilter (Person .due_date )
301
316
filter .set ('gte' , '12/31/2010' )
302
317
self .assert_filter_query (filter , "WHERE persons.due_date >= '2010-12-31'" )
303
318
eq_ (filter .description , 'beginning 12/31/2010' )
304
319
320
+ def test_gte_none (self ):
321
+ figter = DateFilter (Person .due_date )
322
+ with assert_raises (formencode .Invalid ):
323
+ figter .set ('gte' , None )
324
+
305
325
def test_empty (self ):
306
326
filter = DateFilter (Person .due_date )
307
327
filter .set ('empty' , None )
@@ -406,6 +426,11 @@ def test_days_ago(self):
406
426
self .assert_filter_query (filter , "WHERE persons.due_date = '2011-12-22'" )
407
427
eq_ (filter .description , '12/22/2011' )
408
428
429
+ def test_days_ago_none (self ):
430
+ filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
431
+ with assert_raises (formencode .Invalid ):
432
+ filter .set ('da' , None )
433
+
409
434
def test_less_than_days_ago (self ):
410
435
filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
411
436
filter .set ('ltda' , '10' )
@@ -415,12 +440,22 @@ def test_less_than_days_ago(self):
415
440
)
416
441
eq_ (filter .description , '12/22/2011 - 01/01/2012' )
417
442
443
+ def test_less_than_days_ago_none (self ):
444
+ filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
445
+ with assert_raises (formencode .Invalid ):
446
+ filter .set ('ltda' , None )
447
+
418
448
def test_more_than_days_ago (self ):
419
449
filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
420
450
filter .set ('mtda' , '10' )
421
451
self .assert_filter_query (filter , "WHERE persons.due_date < '2011-12-22'" )
422
452
eq_ (filter .description , 'before 12/22/2011' )
423
453
454
+ def test_more_than_days_ago_none (self ):
455
+ filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
456
+ with assert_raises (formencode .Invalid ):
457
+ filter .set ('mtda' , None )
458
+
424
459
def test_in_less_than_days (self ):
425
460
filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
426
461
filter .set ('iltd' , '10' )
@@ -430,18 +465,33 @@ def test_in_less_than_days(self):
430
465
)
431
466
eq_ (filter .description , '01/01/2012 - 01/11/2012' )
432
467
468
+ def test_in_less_than_days_none (self ):
469
+ filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
470
+ with assert_raises (formencode .Invalid ):
471
+ filter .set ('iltd' , None )
472
+
433
473
def test_in_more_than_days (self ):
434
474
filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
435
475
filter .set ('imtd' , '10' )
436
476
self .assert_filter_query (filter , "WHERE persons.due_date > '2012-01-11'" )
437
477
eq_ (filter .description , 'after 01/11/2012' )
438
478
479
+ def test_in_more_than_days_none (self ):
480
+ filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
481
+ with assert_raises (formencode .Invalid ):
482
+ filter .set ('imtd' , None )
483
+
439
484
def test_in_days (self ):
440
485
filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
441
486
filter .set ('ind' , '10' )
442
487
self .assert_filter_query (filter , "WHERE persons.due_date = '2012-01-11'" )
443
488
eq_ (filter .description , '01/11/2012' )
444
489
490
+ def test_in_days_none (self ):
491
+ filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
492
+ with assert_raises (formencode .Invalid ):
493
+ filter .set ('ind' , None )
494
+
445
495
def test_today (self ):
446
496
filter = DateFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
447
497
filter .set ('today' , None )
@@ -531,6 +581,11 @@ def test_selmonth(self):
531
581
self .assert_filter_query (filter , self .between_sql )
532
582
eq_ (filter .description , 'Jan 2012' )
533
583
584
+ def test_selmonth_none (self ):
585
+ filter = DateFilter (Person .due_date , _now = dt .date (2012 , 2 , 4 ))
586
+ with assert_raises (formencode .Invalid ):
587
+ filter .set ('selmonth' , None , 2012 )
588
+
534
589
def test_int_filter_process (self ):
535
590
filter = DateFilter (Person .due_date , _now = dt .date (2012 , 2 , 29 ))
536
591
filter .set ('ltda' , '1' , '' )
@@ -622,6 +677,11 @@ def test_eq(self):
622
677
"AND '2010-12-31 23:59:59.999999'" )
623
678
eq_ (filter .value1_set_with , '12/31/2010' )
624
679
680
+ def test_eq_none (self ):
681
+ filter = DateTimeFilter (Person .createdts )
682
+ with assert_raises (formencode .Invalid ):
683
+ filter .set ('eq' , None )
684
+
625
685
def test_eq_with_time (self ):
626
686
filter = DateTimeFilter (Person .createdts )
627
687
filter .set ('eq' , '12/31/2010 10:26:27' )
@@ -637,6 +697,10 @@ def test_not_eq(self):
637
697
"'2010-12-31 23:59:59.999999'" )
638
698
eq_ (filter .value1_set_with , '12/31/2010' )
639
699
700
+ def test_not_eq_none (self ):
701
+ filter = DateTimeFilter (Person .createdts )
702
+ filter .set ('!eq' , '12/31/2010' )
703
+
640
704
def test_not_eq_with_time (self ):
641
705
filter = DateTimeFilter (Person .createdts )
642
706
filter .set ('!eq' , '12/31/2010 10:26:27' )
@@ -651,6 +715,8 @@ def test_lte(self):
651
715
eq_ (filter .value1_set_with , '12/31/2010' )
652
716
with assert_raises (formencode .Invalid ):
653
717
filter .set ('lte' , '' )
718
+ with assert_raises (formencode .Invalid ):
719
+ filter .set ('lte' , None )
654
720
655
721
def test_lte_with_time (self ):
656
722
filter = DateTimeFilter (Person .createdts )
@@ -662,6 +728,10 @@ def test_gte(self):
662
728
filter .set ('gte' , '12/31/2010' )
663
729
self .assert_filter_query (filter , "WHERE persons.createdts >= '2010-12-31 00:00:00.000000'" )
664
730
eq_ (filter .value1_set_with , '12/31/2010' )
731
+ with assert_raises (formencode .Invalid ):
732
+ filter .set ('gte' , '' )
733
+ with assert_raises (formencode .Invalid ):
734
+ filter .set ('gte' , None )
665
735
666
736
def test_gte_with_time (self ):
667
737
filter = DateTimeFilter (Person .createdts )
@@ -692,6 +762,11 @@ def test_between(self):
692
762
eq_ (filter .value1_set_with , '01/31/2010 12:00 AM' )
693
763
eq_ (filter .value2_set_with , '12/31/2010 11:59 PM' )
694
764
765
+ def test_between_none (self ):
766
+ filter = DateTimeFilter (Person .createdts )
767
+ with assert_raises (formencode .Invalid ):
768
+ filter .set ('between' , None , None )
769
+
695
770
def test_between_missing_date (self ):
696
771
filter = DateTimeFilter (Person .createdts ,
697
772
_now = dt .datetime (2018 , 12 , 15 , 1 , 2 , 3 , 5 ))
@@ -736,6 +811,11 @@ def test_not_between(self):
736
811
"WHERE persons.createdts NOT BETWEEN '2010-01-31 00:00:00.000000' AND "
737
812
"'2010-12-31 23:59:59.999999'" )
738
813
814
+ def test_not_between_none (self ):
815
+ filter = DateTimeFilter (Person .createdts )
816
+ with assert_raises (formencode .Invalid ):
817
+ filter .set ('!between' , None , None )
818
+
739
819
def test_days_ago (self ):
740
820
filter = DateTimeFilter (Person .createdts , _now = dt .date (2012 , 1 , 1 ))
741
821
filter .set ('da' , '10' )
@@ -744,6 +824,11 @@ def test_days_ago(self):
744
824
"WHERE persons.createdts BETWEEN '2011-12-22 00:00:00.000000' AND "
745
825
"'2011-12-22 23:59:59.999999'" )
746
826
827
+ def test_days_ago_none (self ):
828
+ filter = DateTimeFilter (Person .createdts , _now = dt .date (2012 , 1 , 1 ))
829
+ with assert_raises (formencode .Invalid ):
830
+ filter .set ('da' , None )
831
+
747
832
@raises (formencode .Invalid , 'date filter given is out of range' )
748
833
def test_days_ago_overflow (self ):
749
834
filter = DateTimeFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
@@ -757,11 +842,21 @@ def test_less_than_days_ago(self):
757
842
"WHERE persons.createdts > '2011-12-22 23:59:59.999999' AND "
758
843
"persons.createdts < '2012-01-01 00:00:00.000000'" )
759
844
845
+ def test_less_than_days_ago_none (self ):
846
+ filter = DateTimeFilter (Person .createdts , _now = dt .date (2012 , 1 , 1 ))
847
+ with assert_raises (formencode .Invalid ):
848
+ filter .set ('ltda' , None )
849
+
760
850
def test_more_than_days_ago (self ):
761
851
filter = DateTimeFilter (Person .createdts , _now = dt .date (2012 , 1 , 1 ))
762
852
filter .set ('mtda' , '10' )
763
853
self .assert_filter_query (filter , "WHERE persons.createdts < '2011-12-22 00:00:00.000000'" )
764
854
855
+ def test_more_than_days_ago_none (self ):
856
+ filter = DateTimeFilter (Person .createdts , _now = dt .date (2012 , 1 , 1 ))
857
+ with assert_raises (formencode .Invalid ):
858
+ filter .set ('mtda' , None )
859
+
765
860
def test_in_less_than_days (self ):
766
861
filter = DateTimeFilter (Person .createdts , _now = dt .datetime (2012 , 1 , 1 , 12 , 35 ))
767
862
filter .set ('iltd' , '10' )
@@ -770,11 +865,21 @@ def test_in_less_than_days(self):
770
865
"WHERE persons.createdts >= '2012-01-01 12:35:00.000000' AND "
771
866
"persons.createdts < '2012-01-11 00:00:00.000000'" )
772
867
868
+ def test_in_less_than_days_none (self ):
869
+ filter = DateTimeFilter (Person .createdts , _now = dt .datetime (2012 , 1 , 1 , 12 , 35 ))
870
+ with assert_raises (formencode .Invalid ):
871
+ filter .set ('iltd' , None )
872
+
773
873
def test_in_more_than_days (self ):
774
874
filter = DateTimeFilter (Person .createdts , _now = dt .datetime (2012 , 1 , 1 , 12 , 35 ))
775
875
filter .set ('imtd' , '10' )
776
876
self .assert_filter_query (filter , "WHERE persons.createdts > '2012-01-11 23:59:59.999999'" )
777
877
878
+ def test_in_more_than_days_none (self ):
879
+ filter = DateTimeFilter (Person .createdts , _now = dt .datetime (2012 , 1 , 1 , 12 , 35 ))
880
+ with assert_raises (formencode .Invalid ):
881
+ filter .set ('imtd' , None )
882
+
778
883
def test_in_days (self ):
779
884
filter = DateTimeFilter (Person .createdts , _now = dt .datetime (2012 , 1 , 1 , 12 , 35 ))
780
885
filter .set ('ind' , '10' )
@@ -783,6 +888,11 @@ def test_in_days(self):
783
888
"WHERE persons.createdts BETWEEN '2012-01-11 00:00:00.000000' AND "
784
889
"'2012-01-11 23:59:59.999999'" )
785
890
891
+ def test_in_days_none (self ):
892
+ filter = DateTimeFilter (Person .createdts , _now = dt .datetime (2012 , 1 , 1 , 12 , 35 ))
893
+ with assert_raises (formencode .Invalid ):
894
+ filter .set ('ind' , None )
895
+
786
896
@raises (formencode .Invalid , 'date filter given is out of range' )
787
897
def test_in_days_overflow (self ):
788
898
filter = DateTimeFilter (Person .due_date , _now = dt .date (2012 , 1 , 1 ))
@@ -906,6 +1016,11 @@ def test_selmonth(self):
906
1016
self .assert_filter_query (filter , self .between_sql )
907
1017
eq_ (filter .description , 'Jan 2012' )
908
1018
1019
+ def test_selmonth_none (self ):
1020
+ filter = DateTimeFilter (Person .createdts , _now = dt .date (2012 , 2 , 4 ))
1021
+ with assert_raises (formencode .Invalid ):
1022
+ filter .set ('selmonth' , None , None )
1023
+
909
1024
def test_search_expr (self ):
910
1025
expr_factory = DateTimeFilter (Person .due_date ).get_search_expr ()
911
1026
assert callable (expr_factory )
0 commit comments