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 @@