我在单元测试方面不是很有经验,我得到了下面的错误,我无法修复,我希望能得到一些帮助。谢谢
这是返回的错误:
======================================================================
ERROR: test_authenticate_credentials_for_inactive_user (apps.authentication.tests.test_authentication.AuthenticateCredentialsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/site-packages/mock/mock.py", line 1297, in patched
arg = patching.__enter__()
File "/usr/local/site-packages/mock/mock.py", line 1369, in __enter__
original, local = self.get_original()
File "/usr/local/site-packages/mock/mock.py", line 1343, in get_original
"%s does not have the attribute %r" % (target, name)
AttributeError: <bound method Manager.get of <django.db.models.manager.Manager object at 0x00000000015bd168>> does not have the attribute 'has_expired'
这是代码:
^{pr2}$单元测试:
class AuthenticateCredentialsTest(TestCase):
def setUp(self):
self.ExpiringTokenAuth = ExpiringTokenAuthentication()
@patch('apps.authentication.authentication.ExpiringTokenAuthentication.model.objects.get')
@patch('apps.authentication.authentication.ExpiringTokenAuthentication.model.objects.get.user.is_active')
@patch('apps.authentication.authentication.ExpiringTokenAuthentication.model.objects.get.has_expired')
def test_authenticate_credentials_for_inactive_user(self, mock_token, active_user, expired_token):
active_user.return_value = True
expired_token.return_value = False
with self.assertRaises(exceptions.AuthenticationFailed) as ea:
self.ExpiringTokenAuth.authenticate_credentials('valid key')
你可以在不同的测试中分开每个案例。例如:
问题是:您试图通过
.get()
方法来路径返回一个对象,这不是它的工作方式。您需要自行修补实例:相关问题 更多 >
编程相关推荐