From a6c7db1d1d77e34600cec5c5044f4e90ed16691f Mon Sep 17 00:00:00 2001 From: ksg Date: Sat, 28 Oct 2023 21:35:25 +0900 Subject: [PATCH] Fixed #34943 -- Made EmailValidator.__eq__() ignore domain_allowlist ordering. Signed-off-by: ksg97031 --- django/core/validators.py | 2 +- tests/validators/tests.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/django/core/validators.py b/django/core/validators.py index a5641d85b3..9b04dad4ab 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -244,7 +244,7 @@ class EmailValidator: def __eq__(self, other): return ( isinstance(other, EmailValidator) - and (self.domain_allowlist == other.domain_allowlist) + and (set(self.domain_allowlist) == set(other.domain_allowlist)) and (self.message == other.message) and (self.code == other.code) ) diff --git a/tests/validators/tests.py b/tests/validators/tests.py index cae64045bd..5376517a4a 100644 --- a/tests/validators/tests.py +++ b/tests/validators/tests.py @@ -750,6 +750,10 @@ class TestValidatorEquality(TestCase): EmailValidator(message="BAD EMAIL", code="bad"), EmailValidator(message="BAD EMAIL", code="bad"), ) + self.assertEqual( + EmailValidator(allowlist=["127.0.0.1", "localhost"]), + EmailValidator(allowlist=["localhost", "127.0.0.1"]), + ) def test_basic_equality(self): self.assertEqual(