Projet

Général

Profil

0002-emails-validators-address-preferred-mx-server-32435.patch

Christophe Siraut, 18 avril 2019 11:08

Télécharger (1,63 ko)

Voir les différences:

Subject: [PATCH 2/5] emails/validators: address preferred mx server (#32435)

 hobo/emails/validators.py | 2 +-
 tests/test_emails.py      | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)
hobo/emails/validators.py
25 25
def validate_email_address(value):
26 26
    email_domain = value.split('@')[-1]
27 27
    try:
28
        mx_server = dns.resolver.query(email_domain, 'MX')[0].exchange.to_text()
28
        mx_server = sorted(dns.resolver.query(email_domain, 'MX'), key=lambda rdata: rdata.preference)[0].exchange.to_text()
29 29
    except dns.resolver.NXDOMAIN as e:
30 30
        raise ValidationError(_('Error: %s') % str(e))
31 31
    except dns.resolver.NoAnswer as e:
tests/test_emails.py
22 22
            mx.exchange = mock.create_autospec(name.Name)
23 23
            mx.exchange.to_text = mock.MagicMock()
24 24
            mx.exchange.to_text.return_value = 'localhost:10025'
25
            mx.preference = mock.create_autospec(name.Name)
26
            mx.preference.to_text = mock.MagicMock()
27
            mx.preference.to_text.return_value = 10
25 28
            return [mx]
26 29
        if kind == 'TXT':
27 30
            txt = mock.create_autospec(TXT)
28
-