import unittest from unittest import mock import services from containers import Container from dependency_injector.wiring import Provide, inject @inject def run(service: services.BusinessLogic = Provide[Container.business_logic]): service.send("test@receiver") def test_is_mail_send(): container = Container() container.init_resources() container.wire(modules=[__name__]) email_service = mock.Mock(services.EmailService) invoice_service = mock.Mock(services.InvoiceService) invoice_service.create_invoice.return_value = "test invoice" with container.override_providers( email_service=email_service, invoice_service=invoice_service): run() email_service.send.assert_called_once_with("test@receiver", "test invoice") invoice_service.create_invoice.assert_called() if __name__ == '__main__': unittest.main()