Skip to content

Commit 2db7437

Browse files
committed
Add validators tests
1 parent 5e65d83 commit 2db7437

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

tests/test_validators.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ async def test_validator_max_length(db):
2020
await ValidatorModel.create(max_length="aaaaa")
2121

2222

23+
@pytest.mark.asyncio
24+
async def test_validator_min_length(db):
25+
with pytest.raises(ValidationError, match="Length of 'aa' 2 < 3"):
26+
await ValidatorModel.create(min_length="aa")
27+
await ValidatorModel.create(min_length="aaaa")
28+
29+
2330
@pytest.mark.asyncio
2431
async def test_validator_min_value(db):
2532
# min value is 10
@@ -60,6 +67,14 @@ async def test_validator_ipv6(db):
6067
await ValidatorModel.create(ipv6="::")
6168

6269

70+
@pytest.mark.asyncio
71+
async def test_validator_ipv46(db):
72+
with pytest.raises(ValidationError, match="'aaaaaa' is not a valid IPv4 or IPv6 address."):
73+
await ValidatorModel.create(ipv46="aaaaaa")
74+
await ValidatorModel.create(ipv46="::")
75+
await ValidatorModel.create(ipv46="8.8.8.8")
76+
77+
6378
@pytest.mark.asyncio
6479
async def test_validator_comma_separated_integer_list(db):
6580
with pytest.raises(ValidationError):

tests/testmodels.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@
2525
from tortoise.validators import (
2626
CommaSeparatedIntegerListValidator,
2727
MaxValueValidator,
28+
MinLengthValidator,
2829
MinValueValidator,
2930
RegexValidator,
3031
validate_ipv4_address,
3132
validate_ipv6_address,
33+
validate_ipv46_address,
3234
)
3335

3436

@@ -900,8 +902,10 @@ class RequiredPKModel(Model):
900902
class ValidatorModel(Model):
901903
regex = fields.CharField(max_length=100, null=True, validators=[RegexValidator("abc.+", re.I)])
902904
max_length = fields.CharField(max_length=5, null=True)
905+
min_length = fields.CharField(max_length=5, null=True, validators=[MinLengthValidator(3)])
903906
ipv4 = fields.CharField(max_length=100, null=True, validators=[validate_ipv4_address])
904907
ipv6 = fields.CharField(max_length=100, null=True, validators=[validate_ipv6_address])
908+
ipv46 = fields.CharField(max_length=100, null=True, validators=[validate_ipv46_address])
905909
max_value = fields.IntField(null=True, validators=[MaxValueValidator(20.0)])
906910
min_value = fields.IntField(null=True, validators=[MinValueValidator(10.0)])
907911
max_value_decimal = fields.DecimalField(

0 commit comments

Comments
 (0)