UPD: improved tests.

This commit is contained in:
2019-03-13 18:38:58 +01:00
parent c39f09709b
commit 848db26516
7 changed files with 369 additions and 52 deletions

View File

@@ -1,7 +1,18 @@
# -*- coding: utf-8 -*-
from django.test import SimpleTestCase
from django.contrib.auth import get_user_model
from django.test import SimpleTestCase, tag
from django.utils.translation import ugettext
from django.urls import reverse
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from unittest import skip
from dav_base.tests.generic import SeleniumTestCase
TEST_USERNAME = 'root@localhost'
TEST_PASSWORD = u'me||ön 2'
TEST_EMAIL = TEST_USERNAME
class TemplatesTestCase(SimpleTestCase):
@@ -12,3 +23,58 @@ class TemplatesTestCase(SimpleTestCase):
html = u'<a href="{url}">{text}</a>'.format(url=reset_url, text=text)
response = self.client.get(login_url)
self.assertInHTML(html, response.content)
@tag('browser')
class TestCase(SeleniumTestCase):
def setUp(self):
super(TestCase, self).setUp()
# Need a test user
self.test_username = TEST_USERNAME
self.test_password = TEST_PASSWORD
model = get_user_model()
self.user = model.objects.create_user(username=TEST_USERNAME, password=TEST_PASSWORD, email=TEST_EMAIL)
def _login(self, driver):
url = self.complete_url(reverse('dav_auth:login'))
driver.get(url)
username_field = self.wait_on_presence(driver, (By.ID, "id_username"))
username_field.clear()
username_field.send_keys(self.test_username)
password_field = driver.find_element_by_id('id_password')
password_field.clear()
password_field.send_keys(self.test_password)
password_field.send_keys(Keys.RETURN)
self.wait_on_presence(driver, (By.CSS_SELECTOR, "#messages .alert-success"))
return driver
def test_login_button_in_root_page(self):
c = self.selenium
c.get(self.complete_url('/'))
try:
link = c.find_element_by_css_selector('#login-widget a')
except NoSuchElementException as e:
self.fail(str(e))
def test_required_fields_in_login_form(self):
c = self.selenium
location = reverse('dav_auth:login')
c.get(self.complete_url(location))
field = c.find_element_by_id('id_username')
self.assertEqual(field.get_attribute('required'), u'true')
field = c.find_element_by_id('id_password')
self.assertEqual(field.get_attribute('required'), u'true')
def test_required_fields_in_set_password_form(self):
c = self._login(self.selenium)
c.get(self.complete_url(reverse('dav_auth:set_password')))
field = self.wait_on_presence(c, (By.ID, "id_new_password"))
self.assertEqual(field.get_attribute('required'), u'true')
field = c.find_element_by_id('id_new_password_repeat')
self.assertEqual(field.get_attribute('required'), u'true')
field = c.find_element_by_id('id_send_password_mail')
self.assertEqual(field.get_attribute('required'), None)