* Import optional mailbox connections lazily in parsedmarc.mail
* Fix docstring grammar
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Cover the lazy-import guards with tests and harden the AuthMethod placeholder
Maintainer follow-up to the review of #884:
- Add tests/test_mail.py: a sys.meta_path blocker simulates installs
without the gmail/msgraph stacks, exercising both except branches.
CI always has the extras installed, so without a simulated absence
the guarded paths would never execute and the blocking codecov patch
gate would fail. Includes isolation-safe purge/restore of sys.modules
so test ordering cannot leak placeholder state into other suites.
- Replace the AuthMethod = None sentinel with a placeholder that raises
the msgraph extra's ImportError on non-dunder attribute access,
iteration, call, and subscript (every Enum usage shape), instead of
surfacing cryptic NoneType AttributeError/TypeError.
- Raise a fresh ImportError chained to the stored original in the
connection placeholders, so repeated constructions do not keep
appending frames to one shared exception object's traceback.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Sean Whalen <44679+seanthegeek@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>