From bb15eb8471be443157f2be4aef8ee06d9b13025a Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Wed, 11 Dec 2019 19:15:36 +0100 Subject: [PATCH] [Tests] Add test for logging in with default admin credentials --- biscuit/core/tests/browser/test_selenium.py | 30 +++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/biscuit/core/tests/browser/test_selenium.py b/biscuit/core/tests/browser/test_selenium.py index f8f32164f..918ec79c2 100644 --- a/biscuit/core/tests/browser/test_selenium.py +++ b/biscuit/core/tests/browser/test_selenium.py @@ -2,7 +2,9 @@ import os import pytest +from django.conf import settings from django.test.selenium import SeleniumTestCase, SeleniumTestCaseBase +from django.urls import reverse SeleniumTestCaseBase.external_host = os.environ.get('TEST_HOST', '') or None SeleniumTestCaseBase.browsers = list(filter(bool, os.environ.get('TEST_SELENIUM_BROWSERS', '').split(','))) @@ -23,3 +25,31 @@ class SeleniumTests(SeleniumTestCase): self.selenium.get(self.live_server_url + '/') assert 'BiscuIT' in self.selenium.title self._screenshot('index.png') + + @pytest.mark.django_db + def test_login_default_superuser(self): + username = 'admin' + password = 'admin' + + # Navigate to configured login page + self.selenium.get(self.live_server_url + reverse(settings.LOGIN_URL)) + self._screenshot('login_default_superuser_blank.png') + + # Find login form input fields and enter defined credentials + self.selenium.find_element_by_xpath( + '//label[contains(text(), "Username")]/../input' + ).send_keys(username) + self.selenium.find_element_by_xpath( + '//label[contains(text(), "Password")]/../input' + ).send_keys(password) + self._screenshot('login_default_superuser_filled.png') + + # Submit form by clicking django-two-factor-auth's Next button + self.selenium.find_element_by_xpath( + '//button[contains(text(), "Next")]' + ).click() + self._screenshot('login_default_superuser_submitted.png') + + # Should redirect away from login page and not put up an alert about wrong credentials + assert 'Please enter a correct username and password.' not in self.selenium.page_source + assert reverse(settings.LOGIN_URL) not in self.selenium.current_url -- GitLab