Класс не наследуется от класса report_by_mail, поэтому сообщения не приходят. Надо предусмотреть отправку важный сообщений об ошибках, например: ERROR: wine_repository: the patch '/home/vitperov/Projects/wine-dev/dlls/winex11.drv/tests/winex11.drv_test.exe.so' doesn't exists. Maybe this dll have no tests?
Предлагаю наследоваться от обобщённого класса логгер. А он уже наследуется от классов file_logger (нынешний класс logger) и report_by_mail. file_logger один на всю программу, поэтому можно его сразу инициализировать. report_by_mail должен быть уникальным для каждого патча, поэтому сначала добавлять неинициализированный, а потом, при создании класса git_patch инициализировать его. Когда git_patch начинает работу с wine_repository он должен передать/замещать указатель на инициализированную для себя структуру report_by_mail. И logger класса wine_repository будет передавать сообщения через неё. Вопрос только как делать report_by_mail - как член класса, или наследоваться от него?
добавил реализацию классов logger и file_logger. Сейчас поведение должно остаться прежним. Надо проверить.
(In reply to comment #2) > добавил реализацию классов logger и file_logger. > Сейчас поведение должно остаться прежним. > Надо проверить. > Проверил. Переделал. Работает
Вместо наследования добавил инициализацию класса send_mail в классе logger. Убрал наследования из класса git_patch. Прежнее поведение поменяться не должно
Пока не работает: File "/srv/vitperov/Projects/tests/logger.py", line 94, in _send_mail_report self._mail_report.set_mail_subject(subject) AttributeError: report_by_mail instance has no attribute 'set_mail_subject'
Исправил. Работает
Сделал передачу ссылки на mail_logger из wine_patch в wine_repository. Теперь wine_repository тоже отправляет дебаг на почту. Проверил. Работает.