Fixed #22588 -- Fix RegexValidator __eq__
Compare parameters instead of re.pattern instances, and add the other parameters to the comparison. Also add a __ne__ to make assertNotEqual work properly.
This commit is contained in:
parent
99d9fa329a
commit
7fe60ae64a
|
@ -51,7 +51,17 @@ class RegexValidator(object):
|
||||||
raise ValidationError(self.message, code=self.code)
|
raise ValidationError(self.message, code=self.code)
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
return isinstance(other, RegexValidator) and (self.regex == other.regex) and (self.message == other.message) and (self.code == other.code)
|
return (
|
||||||
|
isinstance(other, RegexValidator) and
|
||||||
|
self.regex.pattern == other.regex.pattern and
|
||||||
|
self.regex.flags == other.regex.flags and
|
||||||
|
(self.message == other.message) and
|
||||||
|
(self.code == other.code) and
|
||||||
|
(self.inverse_match == other.inverse_match)
|
||||||
|
)
|
||||||
|
|
||||||
|
def __ne__(self, other):
|
||||||
|
return not (self == other)
|
||||||
|
|
||||||
|
|
||||||
@deconstructible
|
@deconstructible
|
||||||
|
|
|
@ -296,6 +296,33 @@ class TestValidatorEquality(TestCase):
|
||||||
RegexValidator(r'^(?:[a-z0-9\.\-]*)://'),
|
RegexValidator(r'^(?:[a-z0-9\.\-]*)://'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.assertNotEqual(
|
||||||
|
RegexValidator('', flags=re.IGNORECASE),
|
||||||
|
RegexValidator(''),
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertNotEqual(
|
||||||
|
RegexValidator(''),
|
||||||
|
RegexValidator('', inverse_match=True),
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_regex_equality_nocache(self):
|
||||||
|
pattern = r'^(?:[a-z0-9\.\-]*)://'
|
||||||
|
left = RegexValidator(pattern)
|
||||||
|
re.purge()
|
||||||
|
right = RegexValidator(pattern)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
left,
|
||||||
|
right,
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_regex_equality_blank(self):
|
||||||
|
self.assertEqual(
|
||||||
|
RegexValidator(),
|
||||||
|
RegexValidator(),
|
||||||
|
)
|
||||||
|
|
||||||
def test_email_equality(self):
|
def test_email_equality(self):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
EmailValidator(),
|
EmailValidator(),
|
||||||
|
|
Loading…
Reference in New Issue