From d6d3d15da96483e830c851a65059ae651c08b96d Mon Sep 17 00:00:00 2001 From: Joshua Tauberer Date: Sun, 14 Apr 2024 13:38:47 -0400 Subject: [PATCH] Add a deliverability test for a MX-fallback A record --- tests/mocked-dns-answers.json | 29 +++++++++++++++++++++++++++++ tests/test_deliverability.py | 18 ++++++++++-------- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/tests/mocked-dns-answers.json b/tests/mocked-dns-answers.json index 19e443c..ddc46b7 100644 --- a/tests/mocked-dns-answers.json +++ b/tests/mocked-dns-answers.json @@ -13,6 +13,35 @@ "5 gmail-smtp-in.l.google.com." ] }, + { + "query": { + "name": "pages.github.com", + "type": "MX", + "class": "IN" + }, + "answer": [] + }, + { + "query": { + "name": "pages.github.com", + "type": "A", + "class": "IN" + }, + "answer": [ + "185.199.108.153", + "185.199.109.153", + "185.199.110.153", + "185.199.111.153" + ] + }, + { + "query": { + "name": "pages.github.com", + "type": "TXT", + "class": "IN" + }, + "answer": [] + }, { "query": { "name": "xkxufoekjvjfjeodlfmdfjcu.com", diff --git a/tests/test_deliverability.py b/tests/test_deliverability.py index 52124eb..7411c02 100644 --- a/tests/test_deliverability.py +++ b/tests/test_deliverability.py @@ -10,14 +10,16 @@ from mocked_dns_response import MockedDnsResponseData, MockedDnsResponseDataClea RESOLVER = MockedDnsResponseData.create_resolver() -def test_deliverability_found(): - response = validate_email_deliverability('gmail.com', 'gmail.com', dns_resolver=RESOLVER) - assert response.keys() == {'mx', 'mx_fallback_type'} - assert response['mx_fallback_type'] is None - assert len(response['mx']) > 1 - assert len(response['mx'][0]) == 2 - assert isinstance(response['mx'][0][0], int) - assert response['mx'][0][1].endswith('.com') +@pytest.mark.parametrize( + 'domain,expected_response', + [ + ('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}), + ('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'}), + ], +) +def test_deliverability_found(domain, expected_response): + response = validate_email_deliverability(domain, domain, dns_resolver=RESOLVER) + assert response == expected_response def test_deliverability_fails(): -- 2.33.0