Я пытаюсь войти в тестовый клиент, используя встроенную функцию входа. Я пытаюсь объединить тестовые представления и вам нужно войти в систему, чтобы проверить некоторые из них. Я пытался сделать это слишком долго и нуждаюсь в помощи. Несколько примечаний:Django test client не регистрируется
create_user() действительно создает действительного пользователя, он использовался в других местах.
Из того, что я видел о client.login(), он возвращает логическое значение, когда я запускал свои тесты, сбой был «False is not True», поэтому это выглядит правильно.
Единственный способ, с которым я успешно зарегистрировался, - позвонить по адресу client.post ("/ my/login/url", {имя пользователя и пароль в dict.}) Однако по какой-либо причине он не остается включенным в систему все мои тестовые примеры, которые я считаю ОЧЕНЬ странными.
def setUp(self):
"""
Initializes the test client and logs it in.
"""
self.user = create_user()
self.logged_in = self.client.login(username=self.user.username, password=self.user.password)
def test_valid(self):
self.assertTrue(self.logged_in)
я изменил его к следующему:.
def setUp(self):
"""
Initializes the test client and logs it in.
"""
self.password = "password"
self.user = create_user(password=self.password)
self.logged_in = self.client.login(username=self.user.username, password=self.password)
Он по-прежнему не удается войти в
создать пользователя в классе «Static» и имеет user_count инициализируются как 0, функция такова:
def create_user(username=None, password=None, email=None, is_superuser=False):
if username is None:
username = "user%d" % Static.user_count
while User.objects.filter(username=username).count() != 0:
Static.user_count += 1
username = "user%d" % Static.user_count
if password is None:
password = "password"
if email is None:
email="user%[email protected]" % Static.user_count
Static.user_count += 1
user = User.objects.create(username=username, password=password, is_superuser=is_superuser)
Так есть способ получить пароль от пользователя? Или я просто должен знать пароль? – mdw7326
@ user2278110, Как уже упоминалось в ответе, пароль шифруется (хешируется) и не может быть расшифрован. Вы должны передать его 'create_user' (возможно, нужно внести изменения в' create_user') и использовать этот пароль вместо 'self.user.password'. – falsetru
Я отредактировал мой код (показано выше), и он все равно не работает – mdw7326