Skip to content

Commit 1e9c38b

Browse files
committed
Code formatting
1 parent 370b702 commit 1e9c38b

File tree

2 files changed

+34
-74
lines changed

2 files changed

+34
-74
lines changed

checkdmarc/dmarc.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -512,9 +512,7 @@ class DMARCErrorData(TypedDict, total=False):
512512
"required": False,
513513
"default": "u",
514514
"description": (
515-
"A flag indicating "
516-
"whether the domain is a "
517-
"Public Suffix Domain (PSD)."
515+
"A flag indicating whether the domain is a Public Suffix Domain (PSD)."
518516
),
519517
"values": {
520518
"y": (
@@ -1370,9 +1368,7 @@ def parse_dmarc_record(
13701368
removed_tags = ("pct", "rf", "ri")
13711369
for tag in removed_tags:
13721370
if tag in tags and tags[tag]["explicit"]:
1373-
warnings.append(
1374-
f"Support for the {tag} tag was removed in DMARCbis."
1375-
)
1371+
warnings.append(f"Support for the {tag} tag was removed in DMARCbis.")
13761372

13771373
# Validate tag values
13781374
for tag in tags:

tests.py

Lines changed: 32 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -480,10 +480,7 @@ def testDMARCbisPctRemovedWarning(self):
480480
domain = "example.com"
481481
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain)
482482
self.assertTrue(
483-
any(
484-
"pct tag was removed in DMARCbis" in w
485-
for w in result["warnings"]
486-
)
483+
any("pct tag was removed in DMARCbis" in w for w in result["warnings"])
487484
)
488485

489486
def testDMARCbisRfRemovedWarning(self):
@@ -492,10 +489,7 @@ def testDMARCbisRfRemovedWarning(self):
492489
domain = "example.com"
493490
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain)
494491
self.assertTrue(
495-
any(
496-
"rf tag was removed in DMARCbis" in w
497-
for w in result["warnings"]
498-
)
492+
any("rf tag was removed in DMARCbis" in w for w in result["warnings"])
499493
)
500494

501495
def testDMARCbisRiRemovedWarning(self):
@@ -504,10 +498,7 @@ def testDMARCbisRiRemovedWarning(self):
504498
domain = "example.com"
505499
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain)
506500
self.assertTrue(
507-
any(
508-
"ri tag was removed in DMARCbis" in w
509-
for w in result["warnings"]
510-
)
501+
any("ri tag was removed in DMARCbis" in w for w in result["warnings"])
511502
)
512503

513504
def testDMARCbisMissingPTagWarning(self):
@@ -518,10 +509,7 @@ def testDMARCbisMissingPTagWarning(self):
518509
self.assertEqual(result["tags"]["p"]["value"], "none")
519510
self.assertFalse(result["tags"]["p"]["explicit"])
520511
self.assertTrue(
521-
any(
522-
"p tag is optional in DMARCbis" in w
523-
for w in result["warnings"]
524-
)
512+
any("p tag is optional in DMARCbis" in w for w in result["warnings"])
525513
)
526514

527515
def testDMARCbisNpDefaultsToSp(self):
@@ -561,9 +549,7 @@ def testDMARCbisRemovedTagImplicitNoWarning(self):
561549
dmarc_record = "v=DMARC1; p=reject"
562550
domain = "example.com"
563551
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain)
564-
removed_warnings = [
565-
w for w in result["warnings"] if "removed in DMARCbis" in w
566-
]
552+
removed_warnings = [w for w in result["warnings"] if "removed in DMARCbis" in w]
567553
self.assertEqual(len(removed_warnings), 0)
568554

569555
def testDMARCbisBackwardCompatibility(self):
@@ -834,9 +820,7 @@ def testDMARCPctZero(self):
834820
dmarc_record = "v=DMARC1; p=reject; pct=0"
835821
domain = "example.com"
836822
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain)
837-
self.assertTrue(
838-
any("pct value of 0" in w for w in result["warnings"])
839-
)
823+
self.assertTrue(any("pct value of 0" in w for w in result["warnings"]))
840824

841825
def testDMARCPctOutOfRange(self):
842826
"""pct value out of range raises DMARCSyntaxError"""
@@ -887,9 +871,7 @@ def testDMARCFoRedundancy(self):
887871
dmarc_record = "v=DMARC1; p=reject; fo=0:1"
888872
domain = "example.com"
889873
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain)
890-
self.assertTrue(
891-
any("redundant" in w.lower() for w in result["warnings"])
892-
)
874+
self.assertTrue(any("redundant" in w.lower() for w in result["warnings"]))
893875

894876
def testDMARCInvalidFoValue(self):
895877
"""Invalid fo tag value raises InvalidDMARCTagValue"""
@@ -918,41 +900,33 @@ def testDMARCSpNoneWarning(self):
918900
dmarc_record = "v=DMARC1; p=reject; sp=none"
919901
domain = "example.com"
920902
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain)
921-
self.assertTrue(
922-
any("sp tag value of none" in w for w in result["warnings"])
923-
)
903+
self.assertTrue(any("sp tag value of none" in w for w in result["warnings"]))
924904

925905
def testDMARCParkedDomainPolicyWarning(self):
926906
"""Parked domains with p!=reject produce warnings"""
927907
dmarc_record = "v=DMARC1; p=none"
928908
domain = "example.com"
929-
result = checkdmarc.dmarc.parse_dmarc_record(
930-
dmarc_record, domain, parked=True
931-
)
932-
self.assertTrue(
933-
any("parked" in w.lower() for w in result["warnings"])
934-
)
909+
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain, parked=True)
910+
self.assertTrue(any("parked" in w.lower() for w in result["warnings"]))
935911

936912
def testDMARCParkedDomainSpWarning(self):
937913
"""Parked domains with sp!=reject produce warnings"""
938914
dmarc_record = "v=DMARC1; p=reject; sp=none"
939915
domain = "example.com"
940-
result = checkdmarc.dmarc.parse_dmarc_record(
941-
dmarc_record, domain, parked=True
942-
)
916+
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain, parked=True)
943917
self.assertTrue(
944-
any("subdomain policy" in w.lower() and "parked" in w.lower()
945-
for w in result["warnings"])
918+
any(
919+
"subdomain policy" in w.lower() and "parked" in w.lower()
920+
for w in result["warnings"]
921+
)
946922
)
947923

948924
def testDMARCMissingRuaWarning(self):
949925
"""Missing rua tag produces a best practice warning"""
950926
dmarc_record = "v=DMARC1; p=reject"
951927
domain = "example.com"
952928
result = checkdmarc.dmarc.parse_dmarc_record(dmarc_record, domain)
953-
self.assertTrue(
954-
any("rua" in w.lower() for w in result["warnings"])
955-
)
929+
self.assertTrue(any("rua" in w.lower() for w in result["warnings"]))
956930

957931
def testDMARCPTagPosition(self):
958932
"""p tag not immediately after v raises DMARCSyntaxError"""
@@ -1080,9 +1054,7 @@ def testDMARCTreeWalkStopsAtTLD(self):
10801054
)
10811055
# Should have been called for sub.example.com and example.com
10821056
# but NOT for "com"
1083-
queried_domains = [
1084-
c.args[0] for c in mock_query.call_args_list
1085-
]
1057+
queried_domains = [c.args[0] for c in mock_query.call_args_list]
10861058
self.assertNotIn("com", queried_domains)
10871059

10881060
def testDMARCTreeWalkLongDomain(self):
@@ -1135,18 +1107,14 @@ def testDMARCCheckDmarcSuccess(self):
11351107

11361108
def testDMARCParseReportURI(self):
11371109
"""parse_dmarc_report_uri parses valid mailto URIs"""
1138-
uri = checkdmarc.dmarc.parse_dmarc_report_uri(
1139-
"mailto:dmarc@example.com"
1140-
)
1110+
uri = checkdmarc.dmarc.parse_dmarc_report_uri("mailto:dmarc@example.com")
11411111
self.assertEqual(uri["scheme"], "mailto")
11421112
self.assertEqual(uri["address"], "dmarc@example.com")
11431113
self.assertIsNone(uri["size_limit"])
11441114

11451115
def testDMARCParseReportURIWithSize(self):
11461116
"""parse_dmarc_report_uri parses URIs with size limits"""
1147-
uri = checkdmarc.dmarc.parse_dmarc_report_uri(
1148-
"mailto:dmarc@example.com!10m"
1149-
)
1117+
uri = checkdmarc.dmarc.parse_dmarc_report_uri("mailto:dmarc@example.com!10m")
11501118
self.assertEqual(uri["address"], "dmarc@example.com")
11511119
self.assertIsNotNone(uri["size_limit"])
11521120

@@ -1165,9 +1133,7 @@ def testDMARCRecordAtRoot(self):
11651133
mock_query.return_value = "v=DMARC1; p=reject"
11661134
mock_dns.return_value = ["v=DMARC1; p=reject"]
11671135
result = checkdmarc.dmarc.query_dmarc_record("example.com")
1168-
self.assertTrue(
1169-
any("no effect" in w for w in result["warnings"])
1170-
)
1136+
self.assertTrue(any("no effect" in w for w in result["warnings"]))
11711137

11721138
# ================================================================
11731139
# SPF additional tests
@@ -1200,12 +1166,8 @@ def testSPFParkedDomainWarning(self):
12001166
"""Parked domains with wrong SPF record produce a warning"""
12011167
spf_record = "v=spf1 ip4:192.0.2.1 -all"
12021168
domain = "parked-example.com"
1203-
result = checkdmarc.spf.parse_spf_record(
1204-
spf_record, domain, parked=True
1205-
)
1206-
self.assertTrue(
1207-
any("parked" in w.lower() for w in result["warnings"])
1208-
)
1169+
result = checkdmarc.spf.parse_spf_record(spf_record, domain, parked=True)
1170+
self.assertTrue(any("parked" in w.lower() for w in result["warnings"]))
12091171

12101172
def testSPFRedirectWithMacro(self):
12111173
"""SPF redirect with macro is accepted (counts as 1 DNS lookup)"""
@@ -1389,7 +1351,9 @@ def testSoaRnameToEmailInvalid(self):
13891351

13901352
def testParseSoaString(self):
13911353
"""parse_soa_string parses a valid SOA record"""
1392-
soa_record = "ns1.example.com. admin.example.com. 2024010101 3600 900 604800 86400"
1354+
soa_record = (
1355+
"ns1.example.com. admin.example.com. 2024010101 3600 900 604800 86400"
1356+
)
13931357
result = checkdmarc.soa.parse_soa_string(soa_record)
13941358
self.assertEqual(result["primary_nameserver"], "ns1.example.com")
13951359
self.assertEqual(result["serial"], 2024010101)
@@ -1491,7 +1455,9 @@ def testParseMtaStsPolicyMissingKey(self):
14911455

14921456
def testParseMtaStsPolicyInvalidMaxAge(self):
14931457
"""parse_mta_sts_policy raises error for negative max_age"""
1494-
policy = "version: STSv1\r\nmode: enforce\r\nmax_age: -1\r\nmx: mail.example.com\r\n"
1458+
policy = (
1459+
"version: STSv1\r\nmode: enforce\r\nmax_age: -1\r\nmx: mail.example.com\r\n"
1460+
)
14951461
self.assertRaises(
14961462
checkdmarc.mta_sts.MTASTSPolicySyntaxError,
14971463
checkdmarc.mta_sts.parse_mta_sts_policy,
@@ -1613,9 +1579,7 @@ def testCheckMtaStsError(self):
16131579
def testParseSmtpTlsReportingRecord(self):
16141580
"""parse_smtp_tls_reporting_record parses a valid record"""
16151581
record = "v=TLSRPTv1; rua=mailto:tlsrpt@example.com"
1616-
result = checkdmarc.smtp_tls_reporting.parse_smtp_tls_reporting_record(
1617-
record
1618-
)
1582+
result = checkdmarc.smtp_tls_reporting.parse_smtp_tls_reporting_record(record)
16191583
self.assertIn("rua", result["tags"])
16201584
self.assertIn("mailto:tlsrpt@example.com", result["tags"]["rua"]["value"])
16211585

@@ -1675,9 +1639,7 @@ def testParseSmtpTlsReportingMissingRua(self):
16751639
def testParseSmtpTlsReportingHttpsURI(self):
16761640
"""HTTPS URIs are accepted in SMTP TLS Reporting"""
16771641
record = "v=TLSRPTv1; rua=https://tlsrpt.example.com/report"
1678-
result = checkdmarc.smtp_tls_reporting.parse_smtp_tls_reporting_record(
1679-
record
1680-
)
1642+
result = checkdmarc.smtp_tls_reporting.parse_smtp_tls_reporting_record(record)
16811643
self.assertIn("rua", result["tags"])
16821644

16831645
def testCheckSmtpTlsReportingError(self):
@@ -1709,6 +1671,7 @@ def testDnssecFalseWhenNoKey(self):
17091671
def testGetDnskeyCache(self):
17101672
"""get_dnskey uses cache"""
17111673
from expiringdict import ExpiringDict
1674+
17121675
cache = ExpiringDict(max_len=100, max_age_seconds=60)
17131676
mock_key = {"test": "data"}
17141677
cache["example.com"] = mock_key
@@ -1727,6 +1690,7 @@ def testConstantsVersion(self):
17271690
def testConstantsEnvironmentOverrides(self):
17281691
"""Environment variable overrides work for constants"""
17291692
import checkdmarc._constants as constants
1693+
17301694
self.assertIsInstance(constants.CACHE_MAX_LEN, int)
17311695
self.assertIsInstance(constants.CACHE_MAX_AGE_SECONDS, int)
17321696
self.assertIsInstance(constants.SYNTAX_ERROR_MARKER, str)

0 commit comments

Comments
 (0)