diff --git a/tests/test_rules_processor.py b/tests/test_rules_processor.py index 0e0f939..3f32a1b 100644 --- a/tests/test_rules_processor.py +++ b/tests/test_rules_processor.py @@ -593,6 +593,10 @@ def test_validates_max(self): rules={'field': ['max:10']}, request={'field': None} ) + self.assert_passes( + rules={'field': ['max:10']}, + request={'field': self.image_file} + ) def test_validates_mime_types(self): self.assert_passes( @@ -793,7 +797,7 @@ def test_validates_required_without(self): ) self.assert_passes( rules={ - 'id': ['required_without:name', 'integer'], + 'id': ['required_without:name', 'integer'], 'name': ['required_without:id', 'string', 'confirmed'] }, request={'id': 123} @@ -963,6 +967,44 @@ def test_allows_nullable_fields(self): request={} ) + def test_validates_sometimes(self): + self.assert_passes( + rules={'number': ['sometimes', 'max:5']}, + request={} + ) + self.assert_passes( + rules={'number': ['sometimes', 'max:5']}, + request={'number': 2} + ) + self.assert_fails( + rules={'number': ['sometimes', 'max:5']}, + request={'number': ''} + ) + self.assert_fails( + rules={'number': ['sometimes', 'max:5']}, + request={'number': 10} + ) + self.assert_passes( + rules={ + 'zipCode': ['sometimes', 'numeric'], + 'website': ['sometimes', 'url'] + }, + request={} + ) + self.assert_passes( + rules={ + 'zipCode': ['sometimes', 'numeric'], + 'website': ['sometimes', 'url'] + }, + request={'website': 'https://google.com'} + ) + self.assert_fails( + rules={ + 'zipCode': ['sometimes', 'numeric'], + 'website': ['sometimes', 'url'] + }, + request={'website': 'ogle.com'} + ) def test_validates_uuid(self): self.assert_passes(