@@ -57,3 +57,33 @@ def test_length_messages(dummy_form, dummy_field, validator, message):
57
57
validator (dummy_form , dummy_field )
58
58
59
59
assert message in str (e .value )
60
+
61
+ @pytest .mark .parametrize ("min_v, max_v" , [(- 1 , 5 )])
62
+ def test_null_str_pass (min_v , max_v , dummy_form , dummy_field ):
63
+ """
64
+ The null string (field not in submitted formdata, thus field.data is None)
65
+ should pass when min=-1, ie no minimum required.
66
+ """
67
+ dummy_field .data = None
68
+ validator = length (min_v , max_v )
69
+ validator (dummy_form , dummy_field )
70
+
71
+ @pytest .mark .parametrize ("min_v, max_v" , [(0 , 5 ), (0 , - 1 )])
72
+ def test_null_str_fail (min_v , max_v , dummy_form , dummy_field ):
73
+ """
74
+ The null string (field not in submitted formdata, thus field.data is None)
75
+ should fail when min=0
76
+ """
77
+ dummy_field .data = None
78
+ validator = length (min_v , max_v )
79
+ with pytest .raises (ValidationError ):
80
+ validator (dummy_form , dummy_field )
81
+
82
+ @pytest .mark .parametrize ("min_v, max_v" , [(0 , 5 ), (0 , - 1 )])
83
+ def test_empty_str_pass (min_v , max_v , dummy_form , dummy_field ):
84
+ """
85
+ The empty string ('') should pass when min=0
86
+ """
87
+ dummy_field .data = ""
88
+ validator = length (min_v , max_v )
89
+ validator (dummy_form , dummy_field )
0 commit comments