Я использую django-otp
.Вот веб-вид
![enter image description here](https://i.stack.imgur.com/xIQQP.png)
вот мой urls.py
path('user_login/', LoginView.as_view(template_name="user_login.html",
authentication_form=SimpleOTPAuthenticationForm, redirect_authenticated_user=True), name='user_login')
Вот мой .html
<form method="POST" class="form">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Login</button>
{% endbuttons %}
</form>
Вот мой файл forms.py
from django_otp.forms import OTPAuthenticationForm
from django import forms
class SimpleOTPAuthenticationForm(OTPAuthenticationForm):
otp_device = forms.CharField(required=False, widget=forms.HiddenInput)
otp_challenge = forms.CharField(required=False, widget=forms.HiddenInput)
Файл models.py:
from django.contrib.auth.models import AbstractUser
class ProjectUser(AbstractUser):
def __str__(self):
return self.username
Вот текущий тест для имени пользователя и пароля
class FormTest(TestCase):
def setUp(self):
self.credentials = {
'username': 'testuser',
'password': 'secret'}
ProjectUser.objects.create_user(**self.credentials)
def test_user_password_otp_true(self):
response = self.client.post('/user_login/', self.credentials, follow=True)
self.assertTrue(response.context['user'].is_active)
Как изменить тест для прохождения OTP вместе с именем пользователя и паролем?
Вот ссылка на документы
номер строки проверки60 в этом коде -> Вот ссылка на тест, который они используют