UPD: more and better tests.

This commit is contained in:
2019-03-22 17:32:08 +01:00
parent dc37c110df
commit e20f536b1b
6 changed files with 187 additions and 55 deletions

22
dav_auth/tests/generic.py Normal file
View File

@@ -0,0 +1,22 @@
from django.urls import reverse
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
class SeleniumAuthMixin(object):
def login(self, driver, username, password):
driver.get(self.complete_url(reverse('dav_auth:login')))
username_field = self.wait_on_presence(driver, (By.ID, 'id_username'))
username_field.clear()
username_field.send_keys(username)
password_field = driver.find_element_by_id('id_password')
password_field.clear()
password_field.send_keys(password)
password_field.send_keys(Keys.RETURN)
self.wait_on_presence(driver, (By.CSS_SELECTOR, "#messages .alert-success"))
return driver
def logout(self, driver):
driver.get(self.complete_url(reverse('dav_auth:logout')))
self.wait_on_presence(driver, (By.CSS_SELECTOR, "#messages .alert-success"))
return driver

View File

@@ -6,16 +6,14 @@ from django.utils.translation import ugettext
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from dav_base.tests.generic import skip_unless_tag_option, ScreenshotTestCase
from dav_base.tests.generic import ScreenshotTestCase
TEST_USERNAME = 'root@localhost'
TEST_PASSWORD = u'me||ön 2'
TEST_EMAIL = TEST_USERNAME
@skip_unless_tag_option()
@tag('screenshots')
@tag('screenshots', 'browser')
class TestCase(ScreenshotTestCase):
screenshot_prefix = 'dav_auth-'

View File

@@ -5,11 +5,11 @@ 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
from .generic import SeleniumAuthMixin
TEST_USERNAME = 'root@localhost'
TEST_PASSWORD = u'me||ön 2'
TEST_EMAIL = TEST_USERNAME
@@ -26,7 +26,7 @@ class TemplatesTestCase(SimpleTestCase):
@tag('browser')
class TestCase(SeleniumTestCase):
class TestCase(SeleniumAuthMixin, SeleniumTestCase):
def setUp(self):
super(TestCase, self).setUp()
# Need a test user
@@ -35,19 +35,6 @@ class TestCase(SeleniumTestCase):
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('/'))
@@ -68,7 +55,7 @@ class TestCase(SeleniumTestCase):
self.assertEqual(field.get_attribute('required'), u'true')
def test_required_fields_in_set_password_form(self):
c = self._login(self.selenium)
c = self.login(self.selenium, self.test_username, self.test_password)
c.get(self.complete_url(reverse('dav_auth:set_password')))
field = self.wait_on_presence(c, (By.ID, "id_new_password"))