使用 **kwargs 在 factory boy test 中调用函数

Calling a function in factory boy test with **kwargs

我正在尝试编写一个测试,其中我必须调用接受 **kwargs 的模型函数 这是我模型中的函数

def send_message(self, **kwargs):
    from django.core.mail import send_mail
    from django.conf import settings
    send_mail(
            recipient_list=[self.email_from,],
            from_email=settings.INFORMATION_FROM,
            **kwargs
        )

这是我在测试中尝试访问此提及功能的地方

def test_send_message(self):
    send_message = self.user.send_message()
    print send_message  

并收到此错误 TypeError: send_message() takes at least 4 arguments (2 given)

由于这是 Django 的 send_email() function,它需要至少提供 4 个参数:

send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None)

您没有将 subjectmessage 传递给 send_message 函数。修复它:

def test_send_message(self):
    send_message = self.user.send_message(subject="Test subject", message="Test message")
    print send_message