From e20f536b1b783fdf22f364f51cdcf6f19c5e5337 Mon Sep 17 00:00:00 2001
From: Jens Kleineheismann
Date: Fri, 22 Mar 2019 17:32:08 +0100
Subject: [PATCH] UPD: more and better tests.
---
dav_auth/tests/generic.py | 22 +++
dav_auth/tests/test_screenshots.py | 6 +-
dav_auth/tests/test_templates.py | 21 +--
dav_base/tests/generic.py | 3 +-
.../templates/dav_events/event_detail.html | 13 +-
dav_events/tests/test_screenshots.py | 177 +++++++++++++++---
6 files changed, 187 insertions(+), 55 deletions(-)
create mode 100644 dav_auth/tests/generic.py
diff --git a/dav_auth/tests/generic.py b/dav_auth/tests/generic.py
new file mode 100644
index 0000000..202b9b6
--- /dev/null
+++ b/dav_auth/tests/generic.py
@@ -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
diff --git a/dav_auth/tests/test_screenshots.py b/dav_auth/tests/test_screenshots.py
index c54387e..d3fa5b8 100644
--- a/dav_auth/tests/test_screenshots.py
+++ b/dav_auth/tests/test_screenshots.py
@@ -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-'
diff --git a/dav_auth/tests/test_templates.py b/dav_auth/tests/test_templates.py
index 961b107..105561d 100644
--- a/dav_auth/tests/test_templates.py
+++ b/dav_auth/tests/test_templates.py
@@ -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"))
diff --git a/dav_base/tests/generic.py b/dav_base/tests/generic.py
index 3f27902..ed39443 100644
--- a/dav_base/tests/generic.py
+++ b/dav_base/tests/generic.py
@@ -258,8 +258,7 @@ class ScreenshotTestCase(SeleniumTestCase):
if restore_size:
self.selenium.set_window_size(window_size['width'], window_size['height'])
- @skip_unless_tag_option()
- @tag('screenshots')
+ @tag('screenshots', 'browser')
def test_screenshots(self):
for location in self.locations:
self.get(location)
diff --git a/dav_events/templates/dav_events/event_detail.html b/dav_events/templates/dav_events/event_detail.html
index bf1635c..2875dd0 100644
--- a/dav_events/templates/dav_events/event_detail.html
+++ b/dav_events/templates/dav_events/event_detail.html
@@ -84,15 +84,18 @@