0002-emails-validators-address-preferred-mx-server-32435.patch
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 |
- |