Я пытаюсь создать тест 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()
?
Спасибо!