From 63b7e5be6a2b6d9d0f11d2b688f02431a07912d8 Mon Sep 17 00:00:00 2001 From: Uwe Kamper Date: Mon, 8 Apr 2024 14:08:00 +0200 Subject: [PATCH] #881 fix linter errors --- checks/scoring.py | 2 +- checks/tasks/mail.py | 4 +--- checks/tasks/tlsrpt_parsing.py | 10 +++++----- checks/test/test_tlsrpt_parsing.py | 7 +++---- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/checks/scoring.py b/checks/scoring.py index fabe55e5e..741f22ea1 100644 --- a/checks/scoring.py +++ b/checks/scoring.py @@ -235,7 +235,7 @@ MAIL_AUTH_SPF_ERROR = NO_POINTS MAIL_AUTH_SPF_WORST_STATUS = STATUS_FAIL -MAIL_AUTH_TLSRPT_PASS = NO_POINTS +MAIL_AUTH_TLSRPT_PASS = NO_POINTS MAIL_AUTH_TLSRPT_FAIL = NO_POINTS # TLS-RPT fail does not give a points penalty MAIL_AUTH_TLSRPT_ERROR = NO_POINTS MAIL_AUTH_TLSRPT_WORST_STATUS = STATUS_FAIL diff --git a/checks/tasks/mail.py b/checks/tasks/mail.py index c3c22dad3..9c123c5e2 100644 --- a/checks/tasks/mail.py +++ b/checks/tasks/mail.py @@ -226,9 +226,9 @@ def callback(results, addr, category): subtests["spf_policy"].result_bad_include(spf_records) elif spf_policy_status == SpfPolicyStatus.invalid_redirect: subtests["spf_policy"].result_bad_redirect(spf_records) - else: subtests["spf"].result_bad(spf_record) + elif testname == "tlsrpt": tlsrpt_available = result.get("available") tlsrpt_record = result.get("record") @@ -243,8 +243,6 @@ def callback(results, addr, category): subtests["tlsrpt"].result_good(tlsrpt_record) else: subtests["tlsrpt"].result_bad(tlsrpt_record) - - if skip_dkim_for_non_sending_domain(mtauth): mtauth.dkim_score = scoring.MAIL_AUTH_DKIM_PASS subtests["dkim"].result_no_email() diff --git a/checks/tasks/tlsrpt_parsing.py b/checks/tasks/tlsrpt_parsing.py index 8657b0cb7..e4ee47ad1 100644 --- a/checks/tasks/tlsrpt_parsing.py +++ b/checks/tasks/tlsrpt_parsing.py @@ -4,7 +4,7 @@ ''' SMTP TLS Reporting policy parser as defined by: - RFC 8460, Section "3. Reporting Policy", see: + RFC 8460, Section "3. Reporting Policy", see: https://datatracker.ietf.org/doc/html/rfc8460#section-3 ''' @@ -28,8 +28,8 @@ field_delim = ZeroOrMore(WSP) + Literal(';') + ZeroOrMore(WSP) # Fields are semicolon-delimited ura_delim = ZeroOrMore(WSP) + Literal(',') + ZeroOrMore(WSP) # multiple RUAs are comma-delimited -tlsrpt_ext_name = Word(alphanums, alphanums+"_-.", max=32) -tlsrpt_ext_value = Word(alphanums, alphanums+"_-.") +tlsrpt_ext_name = Word(alphanums, alphanums + "_-.", max=32) +tlsrpt_ext_value = Word(alphanums, alphanums + "_-.") tlsrpt_extension = ZeroOrMore(tlsrpt_ext_name + Literal('=') + tlsrpt_ext_value) # RegEx for parsing email. @@ -38,8 +38,8 @@ r"(?P([a-zA-Z0-9]{0,61}@)?([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+" r"" + regex_tld + ")" ) mail_uri = Combine(CaselessLiteral("mailto:") + Regex(regex_mailaddr)) -tlsrpt_rua = Literal("rua=") +\ - delimitedList(mail_uri | pyparsing_common.url, delim=',').setResultsName('tlsrpt_uri') +tlsrpt_rua = Literal("rua=") + \ + delimitedList(mail_uri | pyparsing_common.url, delim=',').setResultsName('tlsrpt_uri') tlsrpt_field = tlsrpt_rua + ZeroOrMore(field_delim + tlsrpt_extension) diff --git a/checks/test/test_tlsrpt_parsing.py b/checks/test/test_tlsrpt_parsing.py index 5ee668f5e..a2436de7b 100644 --- a/checks/test/test_tlsrpt_parsing.py +++ b/checks/test/test_tlsrpt_parsing.py @@ -1,15 +1,15 @@ -from checks.tasks import tlsrpt_parsing +from checks.tasks import tlsrpt_parsing def test_record_parse_simple_mailto(): - TXT_RECORD="v=TLSRPTv1; rua=mailto:reports@example.com" + TXT_RECORD = "v=TLSRPTv1; rua=mailto:reports@example.com" parsed = tlsrpt_parsing.record.parseString(TXT_RECORD) assert parsed.tlsrpt_version == 'v=TLSRPTv1' assert parsed.tlsrpt_uri[0] == 'mailto:reports@example.com' def test_record_parse_multiple_mailto(): - TXT_RECORD="v=TLSRPTv1;rua=mailto:reports@example.com,mailto:postmaster@example.com" + TXT_RECORD = "v=TLSRPTv1;rua=mailto:reports@example.com,mailto:postmaster@example.com" parsed = tlsrpt_parsing.record.parseString(TXT_RECORD) assert parsed.tlsrpt_version == 'v=TLSRPTv1' assert parsed.tlsrpt_uri[0] == 'mailto:reports@example.com' @@ -27,7 +27,6 @@ def test_record_parse_with_extension(): TXT_RECORD = "v=TLSRPTv1; rua=https://reporting.example.com/v1/tlsrpt; ext=extvalue" parsed = tlsrpt_parsing.record.parseString(TXT_RECORD) assert parsed.tlsrpt_version == 'v=TLSRPTv1' - #assert parsed.tlsrpt_uri[0] == 'https://reporting.example.com/v1/tlsrpt' def test_parse_silent():