我一直在試圖測試尚未驗證的用戶。單元測試嘗試登錄
class TestLoginApi(TestCase):
URL = '/rest-auth/login/'
EMAIL = '[email protected]
PASSWORD = 'password'
DATA = {'email': EMAIL, 'password': PASSWORD}
@classmethod
def setUpTestData(cls):
cls.user = get_user_model().objects.create_user(username='testuser', email=cls.EMAIL,
password=cls.PASSWORD)
def test_login_api_without_verification(self):
response = self.client.post(self.URL, self.DATA, format='json')
的 「迴應」 行引發以下錯誤
錯誤 回溯(最近通話最後一個): 文件「/Library/Frameworks/Python.framework/Versions/3.6/lib/ python3.6/unittest/case.py「,第59行,在testPartExecutor 產量 文件」/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py「,第601行,在運行 TestMethod的() 文件「/用戶/ docdocengineering3/GitHub上/網站/項目/授權/測試/ TEST_ login.py「,第34行,在test_login_api_without_verification中 response = self.client.post(self.URL,self.DATA,format ='json') 文件」/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3。 6/site-packages/django/test/client.py「,第548行,後 secure = secure,** extra) 文件」/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site- packages/django/test/client.py「,第350行,後 secure = secure,**額外) 文件」/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/ test/client.py「,行416,在通用 返回self.request(** r) 文件」/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/test/client py」爲,線501,在請求 six.reraise(* exc_info) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/utils/six.py」,第686行,重新調整 增加值 文件「/ Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/core/handlers/exception.py「,第41行,內部爲 response = get_response(request) File」/Users/docdocengineering3/.virtualenvs/docdoc /lib/python3.6/site-packages/django/core/handlers/base.py「,第187行,在_get_response response = self.process_exception_by_middleware(e,請求) 文件」/Users/docdocengineering3/.virtualenvs/docdoc /lib/python3.6/site-packages/django/core/handlers/base.py」,線路185,在_get_response 響應= wrapped_callback(請求,* callback_args,** callback_kwargs) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/views/decorators/csrf.py」,第58行,位於wrapped_view中 返回view_func(* args,** kwargs) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/views/generic/base.py」,第68行,在視圖中 返回self.dispatch(request,* args, ** kwargs) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/utils/decorators.py」,第67行,_wrapper return bound_func(* args,** kwargs) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/views/decorators/debug.py」,第76行,在sensitive_post_parameters_wrapper中 返回視圖(request,* args, ** kwargs) 文件「/用戶/ docdocengineering3/.virtualenvs/docdoc/lib中/ python3.6 /站點包/ Django的/ utils的/ decorators.py」 63行,在bound_func 回報FUNC。 得到(self,type(self))(* args2,** kwargs2) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/rest_auth/views.py」,行49,在調度 回報超(LoginView,個體經營).dispatch(* ARGS,** kwargs) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/rest_framework/views.py 「,第489行,在調度 response = self。handle_exception(exc) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/rest_framework/views.py」,第449行,在handle_exception中 self.raise_uncaught_exception(exc) 文件「/用戶/ docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/rest_framework/views.py「,第486行,在調度 response = handler(request,* args,** kwargs) File」/ Users /docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/rest_auth/views.py「,第92行,後 self.serializer.is_valid(raise_exception = True) 文件」/ Users/docdocengineering3 /。 virtualenvs/docdoc/lib/python3.6/site-packages/rest_framework/serializers.py「,第237行,在is_valid中 self._validated_data = self.run_validation(self.initial_data) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/rest_framework/serializers.py」,第435行,在run_validation中 value = self.validate(value) File「/ Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/rest_auth/serializers.py「,第105行,驗證 email_address = user.emailaddress_set.get(email = user.email) File」/ Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/db/models/manager.py「,第85行,在manager_method中 return getattr(self.get_queryset(),name)(* args,* * kwargs) 文件「/Users/docdocengineering3/.virtualenvs/docdoc/lib/python3.6/site-packages/django/db/models/query.py」,行380,在獲得 self.model._meta.object_name Excep電子郵件地址匹配查詢不存在。
我不知道爲什麼會發生這種情況。這不是一個設置問題,因爲我實際上已經嘗試運行系統中,創建一個用戶(未驗證),當我「郵差」同一個鏈接,我得到正確的錯誤回到
{"non_field_errors": [ "E-mail is not verified." ] }
所以它的工作原理在實際產品中,而不是在測試時。有人知道爲什麼任何幫助是極大的讚賞。
這是我無法工作的唯一測試,其餘所有工作都正常運行。