35 lines
893 B
Python
35 lines
893 B
Python
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()
|