Django тест - невозможно войти с помощью Selenium - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь создать тест Selenium для моего Django проекта (Django 1.10).

Проблема в том, что я не могу войти.

Мой код:

class TicketViewTest(ArticleTestBase, LiveServerTestCase):

def tearDown(self):
    self.driver.quit()

def test_main(self):
    self.novice_writer = self.create_user('novice_writer', Profile.ROLE_NOVICE_WRITER)
    self.novice_writer.save()
    print(Profile.objects.all()) # result: <QuerySet [<Profile: 1 novice_writer novice_writer>]>

    self.driver = webdriver.Firefox('/usr/lib/geckodriver/')
    self.driver.implicitly_wait(3)

    self.driver.get('{}/login/'.format(self.live_server_url))
    sleep(2)
    self.driver.find_element_by_id('inputLogin').send_keys('novice_writer')
    self.driver.find_element_by_id('inputPassword').send_keys('password')
    self.driver.implicitly_wait(1)
    self.driver.find_element_by_xpath('//button[@type="submit"]').click()
    sleep(2)

В браузере Selenium после нажатия кнопки «Отправить» я вижу ошибку «Пожалуйста, введите правильное имя пользователя и пароль. Обратите внимание, что оба поля чувствительны к регистру. '

Когда я пытался добавить print(Profile.objects.all()) к своему login_view, я получил' '

Так что сервер, запущенный тестом, просто не видит моего пользователя .

Я добавил следующий код для test и login_view (просто чтобы убедиться, что сервер и тест используют одну и ту же базу данных)

from django.db import connection
print(connection.settings_dict)

и результат идентичен для view и test. Поэтому они используют одну базу данных. Тогда почему они получают разные результаты для Profile.objects.all()?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...