83 lines
2.5 KiB
Diff
83 lines
2.5 KiB
Diff
From d6d3d15da96483e830c851a65059ae651c08b96d Mon Sep 17 00:00:00 2001
|
|
From: Joshua Tauberer <jt@occams.info>
|
|
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
|
|
|