Skip to content

Commit d6d3d15

Browse files
committed
Add a deliverability test for a MX-fallback A record
1 parent 7011e69 commit d6d3d15

File tree

2 files changed

+39
-8
lines changed

2 files changed

+39
-8
lines changed

tests/mocked-dns-answers.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,35 @@
1313
"5 gmail-smtp-in.l.google.com."
1414
]
1515
},
16+
{
17+
"query": {
18+
"name": "pages.github.com",
19+
"type": "MX",
20+
"class": "IN"
21+
},
22+
"answer": []
23+
},
24+
{
25+
"query": {
26+
"name": "pages.github.com",
27+
"type": "A",
28+
"class": "IN"
29+
},
30+
"answer": [
31+
"185.199.108.153",
32+
"185.199.109.153",
33+
"185.199.110.153",
34+
"185.199.111.153"
35+
]
36+
},
37+
{
38+
"query": {
39+
"name": "pages.github.com",
40+
"type": "TXT",
41+
"class": "IN"
42+
},
43+
"answer": []
44+
},
1645
{
1746
"query": {
1847
"name": "xkxufoekjvjfjeodlfmdfjcu.com",

tests/test_deliverability.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,16 @@
1010
RESOLVER = MockedDnsResponseData.create_resolver()
1111

1212

13-
def test_deliverability_found():
14-
response = validate_email_deliverability('gmail.com', 'gmail.com', dns_resolver=RESOLVER)
15-
assert response.keys() == {'mx', 'mx_fallback_type'}
16-
assert response['mx_fallback_type'] is None
17-
assert len(response['mx']) > 1
18-
assert len(response['mx'][0]) == 2
19-
assert isinstance(response['mx'][0][0], int)
20-
assert response['mx'][0][1].endswith('.com')
13+
@pytest.mark.parametrize(
14+
'domain,expected_response',
15+
[
16+
('gmail.com', {'mx': [(5, 'gmail-smtp-in.l.google.com'), (10, 'alt1.gmail-smtp-in.l.google.com'), (20, 'alt2.gmail-smtp-in.l.google.com'), (30, 'alt3.gmail-smtp-in.l.google.com'), (40, 'alt4.gmail-smtp-in.l.google.com')], 'mx_fallback_type': None}),
17+
('pages.github.com', {'mx': [(0, '185.199.108.153'), (0, '185.199.109.153'), (0, '185.199.111.153'), (0, '185.199.110.153')], 'mx_fallback_type': 'A'}),
18+
],
19+
)
20+
def test_deliverability_found(domain, expected_response):
21+
response = validate_email_deliverability(domain, domain, dns_resolver=RESOLVER)
22+
assert response == expected_response
2123

2224

2325
def test_deliverability_fails():

0 commit comments

Comments
 (0)