Created
July 1, 2013 13:05
-
-
Save loic/5900574 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py | |
index 4823883..5b2cb9a 100644 | |
--- a/tests/admin_widgets/tests.py | |
+++ b/tests/admin_widgets/tests.py | |
@@ -1,7 +1,8 @@ | |
# encoding: utf-8 | |
from __future__ import absolute_import, unicode_literals | |
-from datetime import datetime | |
+from datetime import datetime, timedelta, tzinfo | |
+import os | |
from django import forms | |
from django.conf import settings | |
@@ -13,10 +14,13 @@ from django.core.files.uploadedfile import SimpleUploadedFile | |
from django.db.models import CharField, DateField | |
from django.test import TestCase as DjangoTestCase | |
from django.test.utils import override_settings | |
-from django.utils import six | |
+from django.utils import six, timezone | |
from django.utils import translation | |
from django.utils.html import conditional_escape | |
+from django.utils.module_loading import import_by_path | |
+from django.utils.tzinfo import FixedOffset | |
from django.utils.unittest import TestCase | |
+from django.utils.unittest.case import SkipTest | |
from . import models | |
from .widgetadmin import site as widget_admin_site | |
@@ -527,6 +531,64 @@ class DateTimePickerSeleniumIETests(DateTimePickerSeleniumFirefoxTests): | |
@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',)) | |
+class DateTimePickerShortcutsSeleniumFirefoxTests(AdminSeleniumWebDriverTestCase): | |
+ available_apps = ['admin_widgets'] + AdminSeleniumWebDriverTestCase.available_apps | |
+ fixtures = ['admin-widgets-users.xml'] | |
+ urls = "admin_widgets.urls" | |
+ webdriver_class = 'selenium.webdriver.firefox.webdriver.WebDriver' | |
+ | |
+ @classmethod | |
+ def setUpClass(cls): | |
+ super(AdminSeleniumWebDriverTestCase, cls).setUpClass() | |
+ | |
+ if not os.environ.get('DJANGO_SELENIUM_TESTS', False): | |
+ raise SkipTest('Selenium tests not requested') | |
+ try: | |
+ with timezone.override(FixedOffset(420)): | |
+ cls.selenium = import_by_path(cls.webdriver_class)() | |
+ except Exception as e: | |
+ raise SkipTest('Selenium webdriver "%s" not installed or not ' | |
+ 'operational: %s' % (cls.webdriver_class, str(e))) | |
+ | |
+ def test_date_time_picker_shortcuts(self): | |
+ """ | |
+ Ensure that date/time/datetime picker shortcuts work in the current time zone. | |
+ Refs #20663. | |
+ """ | |
+ self.admin_login(username='super', password='secret', login_url='/') | |
+ | |
+ now = datetime.now() | |
+ error_margin = timedelta(seconds=10) | |
+ | |
+ self.selenium.get('%s%s' % (self.live_server_url, | |
+ '/admin_widgets/member/add/')) | |
+ | |
+ self.selenium.find_element_by_id('id_name').send_keys('test') | |
+ | |
+ shortcuts = self.selenium.find_elements_by_css_selector( | |
+ '.field-birthdate .datetimeshortcuts') | |
+ | |
+ for shortcut in shortcuts: | |
+ shortcut.find_element_by_tag_name('a').click() | |
+ | |
+ import time | |
+ time.sleep(60) | |
+ | |
+ self.selenium.find_element_by_tag_name('form').submit() | |
+ self.wait_page_loaded() | |
+ | |
+ member = models.Member.objects.get(name='test') | |
+ self.assertGreater(member.birthdate, now - error_margin) | |
+ self.assertLess(member.birthdate, now + error_margin) | |
+ | |
+class DateTimePickerShortcutsSeleniumChromeTests(DateTimePickerShortcutsSeleniumFirefoxTests): | |
+ webdriver_class = 'selenium.webdriver.chrome.webdriver.WebDriver' | |
+ | |
+class DateTimePickerShortcutsSeleniumIETests(DateTimePickerShortcutsSeleniumFirefoxTests): | |
+ webdriver_class = 'selenium.webdriver.ie.webdriver.WebDriver' | |
+ | |
+ | |
+@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',)) | |
class HorizontalVerticalFilterSeleniumFirefoxTests(AdminSeleniumWebDriverTestCase): | |
available_apps = ['admin_widgets'] + AdminSeleniumWebDriverTestCase.available_apps |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment