Wednesday, November 20, 2019
1 change · master
Code cleanup and technical improvements
This change centralizes email and messaging test helpers in the core Mail module so other related modules can reuse them instead of maintaining duplicate tools. It improves consistency and reliability of future testing for messaging, notifications, and mass mailing without changing everyday user workflows.
Original PR description
PURPOSE Currently tools and asserts for mail tests are located inside test_mail module. It makes difficult to re-use them in application tests or force them to write custom quick and dirty tools and…
PURPOSE
Currently tools and asserts for mail tests are located inside test_mail
module. It makes difficult to re-use them in application tests or force them
to write custom quick and dirty tools and asserts. Purpose of this merge
is therefore to move tools classes and mocks to mail directly and use them
in various sub modules.
SPECIFICATIONS
Have class, mocks, tools and asserts available in mail so that all modules
below from mail can use them.
Including
* mock mail gateway in a clean way: mock server connection, email building
and sending;
* allow to simulate errors while sending emails to test corner cases;
* provide tools to insert emails in mail gateway;
* mock mail application to check record creation (message, notifications,
mails, ...);
* mock bus notification;
* provide clearer assert methods for bus and mail notifications;
* provide clearer emails sending and content methods;
* provide a with_user tool context manager for tests allowing to quickly
change current user given a login;
Most of those tools, asserts and mocks come from test_mail/tests/common.py.
They have been partially rewritten to be easier to use or to perform tests
more cleanly.
In this merge we gradually apply changes on existing tests in test_mail,
test_mass_mailing and test_mail_full. First commits will provide the new
classes, then tests will be updated, and finally dead classes removed.
Having it done step by step make it easier to read and understand.
LINKS
Task ID 2068986
PR #38070