Skip to content

Commit a1fb9fb

Browse files
committed
regex validator test case
1 parent e38e2ab commit a1fb9fb

File tree

5 files changed

+35
-21
lines changed

5 files changed

+35
-21
lines changed

codeforlife/tests/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@
2121
from .model_view_set import BaseModelViewSetTestCase, ModelViewSetTestCase
2222
from .model_view_set_client import BaseModelViewSetClient, ModelViewSetClient
2323
from .test import Client, TestCase
24-
from .validator import ValidatorTestCase
24+
from .validator import RegexValidatorTestCase, ValidatorTestCase

codeforlife/tests/validator.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,26 @@
55

66
import typing as t
77

8+
from django.core.validators import RegexValidator
9+
810
from .test import TestCase
911

1012
AnyValidator = t.TypeVar("AnyValidator", bound=t.Callable)
13+
AnyRegexValidator = t.TypeVar("AnyRegexValidator", bound=RegexValidator)
1114

1215

1316
class ValidatorTestCase(TestCase, t.Generic[AnyValidator]):
1417
"""Test case with utilities for testing validators."""
1518

1619
validator_class: t.Type[AnyValidator]
1720

21+
22+
class RegexValidatorTestCase(
23+
ValidatorTestCase[AnyRegexValidator], t.Generic[AnyRegexValidator]
24+
):
25+
"""Test case with utilities for testing regex validators."""
26+
1827
def assert_raises_validation_error(self, *args, **kwargs):
1928
return super().assert_raises_validation_error(
20-
"invalid", *args, **kwargs
29+
self.validator_class.code, *args, **kwargs
2130
)

codeforlife/validators/char_set/ascii_test.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from string import ascii_letters, ascii_lowercase, ascii_uppercase
77
from string import digits as ascii_numbers
88

9-
from ...tests import ValidatorTestCase
9+
from ...tests import RegexValidatorTestCase
1010
from ._test import (
1111
unicode_letters,
1212
unicode_lowercase,
@@ -24,10 +24,11 @@
2424
)
2525

2626
# pylint: disable=missing-class-docstring
27+
# pylint: disable=too-many-ancestors
2728

2829

2930
class TestAsciiAlphaCharSetValidator(
30-
ValidatorTestCase[AsciiAlphaCharSetValidator]
31+
RegexValidatorTestCase[AsciiAlphaCharSetValidator]
3132
):
3233
validator_class = AsciiAlphaCharSetValidator
3334

@@ -52,7 +53,7 @@ def test_unicode_numbers(self):
5253

5354

5455
class TestLowercaseAsciiAlphaCharSetValidator(
55-
ValidatorTestCase[LowercaseAsciiAlphaCharSetValidator]
56+
RegexValidatorTestCase[LowercaseAsciiAlphaCharSetValidator]
5657
):
5758
validator_class = LowercaseAsciiAlphaCharSetValidator
5859

@@ -87,7 +88,7 @@ def test_unicode_numbers(self):
8788

8889

8990
class TestUppercaseAsciiAlphaCharSetValidator(
90-
ValidatorTestCase[UppercaseAsciiAlphaCharSetValidator]
91+
RegexValidatorTestCase[UppercaseAsciiAlphaCharSetValidator]
9192
):
9293
validator_class = UppercaseAsciiAlphaCharSetValidator
9394

@@ -122,7 +123,7 @@ def test_unicode_numbers(self):
122123

123124

124125
class TestAsciiNumericCharSetValidator(
125-
ValidatorTestCase[AsciiNumericCharSetValidator]
126+
RegexValidatorTestCase[AsciiNumericCharSetValidator]
126127
):
127128
validator_class = AsciiNumericCharSetValidator
128129

@@ -147,7 +148,7 @@ def test_unicode_numbers(self):
147148

148149

149150
class TestAsciiAlphanumericCharSetValidator(
150-
ValidatorTestCase[AsciiAlphanumericCharSetValidator]
151+
RegexValidatorTestCase[AsciiAlphanumericCharSetValidator]
151152
):
152153
validator_class = AsciiAlphanumericCharSetValidator
153154

@@ -171,7 +172,7 @@ def test_unicode_numbers(self):
171172

172173

173174
class TestLowercaseAsciiAlphanumericCharSetValidator(
174-
ValidatorTestCase[LowercaseAsciiAlphanumericCharSetValidator]
175+
RegexValidatorTestCase[LowercaseAsciiAlphanumericCharSetValidator]
175176
):
176177
validator_class = LowercaseAsciiAlphanumericCharSetValidator
177178

@@ -205,7 +206,7 @@ def test_unicode_numbers(self):
205206

206207

207208
class TestUppercaseAsciiAlphanumericCharSetValidator(
208-
ValidatorTestCase[UppercaseAsciiAlphanumericCharSetValidator]
209+
RegexValidatorTestCase[UppercaseAsciiAlphanumericCharSetValidator]
209210
):
210211
validator_class = UppercaseAsciiAlphanumericCharSetValidator
211212

codeforlife/validators/char_set/base_test.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55

66
from string import ascii_letters, digits, punctuation
77

8-
from ...tests import ValidatorTestCase
8+
from ...tests import RegexValidatorTestCase
99
from .base import CharSetValidator, CharSetValidatorBuilder
1010

1111
# pylint: disable=missing-class-docstring
12+
# pylint: disable=too-many-ancestors
1213

1314

14-
class TestCharSetValidator(ValidatorTestCase[CharSetValidator]):
15+
class TestCharSetValidator(RegexValidatorTestCase[CharSetValidator]):
1516
validator_class = CharSetValidator
1617

1718
def setUp(self):
@@ -34,7 +35,9 @@ def test_special_chars(self):
3435
self.validator(punctuation)
3536

3637

37-
class TestCharSetValidatorBuilder(ValidatorTestCase[CharSetValidatorBuilder]):
38+
class TestCharSetValidatorBuilder(
39+
RegexValidatorTestCase[CharSetValidatorBuilder]
40+
):
3841
validator_class = CharSetValidatorBuilder
3942

4043
def setUp(self):

codeforlife/validators/char_set/unicode_test.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Created on 21/03/2025 at 16:29:12(+00:00).
44
"""
55

6-
from ...tests import ValidatorTestCase
6+
from ...tests import RegexValidatorTestCase
77
from ._test import (
88
unicode_letters,
99
unicode_lowercase,
@@ -21,10 +21,11 @@
2121
)
2222

2323
# pylint: disable=missing-class-docstring
24+
# pylint: disable=too-many-ancestors
2425

2526

2627
class TestUnicodeAlphaCharSetValidator(
27-
ValidatorTestCase[UnicodeAlphaCharSetValidator]
28+
RegexValidatorTestCase[UnicodeAlphaCharSetValidator]
2829
):
2930
validator_class = UnicodeAlphaCharSetValidator
3031

@@ -39,7 +40,7 @@ def test_unicode_numbers(self):
3940

4041

4142
class TestLowercaseUnicodeAlphaCharSetValidator(
42-
ValidatorTestCase[LowercaseUnicodeAlphaCharSetValidator]
43+
RegexValidatorTestCase[LowercaseUnicodeAlphaCharSetValidator]
4344
):
4445
validator_class = LowercaseUnicodeAlphaCharSetValidator
4546

@@ -59,7 +60,7 @@ def test_unicode_numbers(self):
5960

6061

6162
class TestUppercaseUnicodeAlphaCharSetValidator(
62-
ValidatorTestCase[UppercaseUnicodeAlphaCharSetValidator]
63+
RegexValidatorTestCase[UppercaseUnicodeAlphaCharSetValidator]
6364
):
6465
validator_class = UppercaseUnicodeAlphaCharSetValidator
6566

@@ -79,7 +80,7 @@ def test_unicode_numbers(self):
7980

8081

8182
class TestUnicodeNumericCharSetValidator(
82-
ValidatorTestCase[UnicodeNumericCharSetValidator]
83+
RegexValidatorTestCase[UnicodeNumericCharSetValidator]
8384
):
8485
validator_class = UnicodeNumericCharSetValidator
8586

@@ -94,7 +95,7 @@ def test_unicode_numbers(self):
9495

9596

9697
class TestUnicodeAlphanumericCharSetValidator(
97-
ValidatorTestCase[UnicodeAlphanumericCharSetValidator]
98+
RegexValidatorTestCase[UnicodeAlphanumericCharSetValidator]
9899
):
99100
validator_class = UnicodeAlphanumericCharSetValidator
100101

@@ -108,7 +109,7 @@ def test_unicode_numbers(self):
108109

109110

110111
class TestLowercaseUnicodeAlphanumericCharSetValidator(
111-
ValidatorTestCase[LowercaseUnicodeAlphanumericCharSetValidator]
112+
RegexValidatorTestCase[LowercaseUnicodeAlphanumericCharSetValidator]
112113
):
113114
validator_class = LowercaseUnicodeAlphanumericCharSetValidator
114115

@@ -127,7 +128,7 @@ def test_unicode_numbers(self):
127128

128129

129130
class TestUppercaseUnicodeAlphanumericCharSetValidator(
130-
ValidatorTestCase[UppercaseUnicodeAlphanumericCharSetValidator]
131+
RegexValidatorTestCase[UppercaseUnicodeAlphanumericCharSetValidator]
131132
):
132133
validator_class = UppercaseUnicodeAlphanumericCharSetValidator
133134

0 commit comments

Comments
 (0)