- Flush key-collecting structures each time a new public key entry is found.
This will avoid adding sub-keys and overwriting main keys with them.
- Use parseaddr from email.utils to parse emails (and drop realname part).
- Record logs produced during unit tests.
- Fix a small bug in test code.
Also: add basic information about available test identities to testing
documentation.
- Use regular expressions instead of finding particular characters in gnupg
output to decide whether confirmation line was found.
- Use tempfile.mkdtemp to create secure temporary directories.
- Record information about the key considered by GnuPG. When missing in
exception, it means no key was found.
When GnuPG refuses to encrypt a message (e.g. when key has expired), record
information about the failure and send to logs, then deliver cleartext. This
way we won't bounce email that could be delivered without encryption.
Also: add more E2E tests.
- Cover basic GnuPG functionality with tests (confirm_key, public_keys).
- Add a test public key file.
- Fix resource leak by closing streams opened by Popen.
In particular, move:
- test utilities to test/utils;
- unit tests to test/modules.
Also: start implementing the Lacre daemon test (just a stub for now).