pypi checkdmarc 5.15.5

latest releases: 5.16.2, 5.16.1, 5.16.0...
8 hours ago

Fixes

  • BIMI: stop masking MultipleBIMIRecords, UnrelatedTXTRecordFoundAtBIMI,
    and BIMIRecordInWrongLocation behind BIMIRecordNotFound. The
    apex-fallback handler also had a missing raise, so a record placed at
    the apex (instead of the _bimi selector) was silently treated as
    "not found" (#246).
  • BIMI: extend the grammar to accept the canonical lps= value
    format — a comma-separated list of local-part selectors per
    draft-bimi-14 § 4.3.14.
    The grammar previously only accepted values matching one of
    bimi1, an HTTPS URL, personal, or brand, so the canonical
    comma-separated form raised BIMISyntaxError. Also fix the parser
    to write the parsed selector list back to the tag value (#246).
  • DMARC: stop masking DMARCRecordInWrongLocation behind
    DMARCRecordNotFound in _query_dmarc_record's apex-fallback path (#248).
  • SMTP: the cache-write paths in test_tls and test_starttls used
    if cache:, which is falsy for an empty ExpiringDict. The first
    cache entry was silently dropped, so subsequent SMTP probes kept
    hitting the network (#244).
  • SPF: parse_spf_record's redirect handler used except DNSException as error:, shadowing the function-level error accumulator. Python
    deletes the name on except-block exit, so the trailing if error:
    raised UnboundLocalError (#247).

Changes

  • Test suite reorganized from a single tests.py into per-module
    files under tests/. Network-dependent tests are paired with
    fully-mocked counterparts; CI runs the mocked branch, local runs
    the real-network branch.
  • Project test coverage raised from 67% to 96%; every module is now
    at ≥ 90%. Coverage and test results are uploaded to Codecov on
    each CI run.

Don't miss a new checkdmarc release

NewReleases is sending notifications on new releases.