diff options
Diffstat (limited to 'tests/admin_widgets')
| -rw-r--r-- | tests/admin_widgets/tests.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py index 83ae968523..fb31334b28 100644 --- a/tests/admin_widgets/tests.py +++ b/tests/admin_widgets/tests.py @@ -2,6 +2,9 @@ from __future__ import unicode_literals from datetime import datetime, timedelta +import gettext +from importlib import import_module +import os from unittest import TestCase, skipIf try: @@ -637,6 +640,50 @@ class DateTimePickerSeleniumFirefoxTests(AdminSeleniumWebDriverTestCase): self.assertEqual(len(selected), 0) + def test_calendar_show_date_from_input(self): + """ + Ensure that the calendar show the date from the input field for every + locale supported by django. + """ + self.admin_login(username='super', password='secret', login_url='/') + + # Enter test data + member = models.Member.objects.create(name='Bob', birthdate=datetime(1984, 05, 15), gender='M') + + # Get month names translations for every locales + month_string = 'January February March April May June July August September October November December' + path = os.path.join(os.path.dirname(import_module('django.contrib.admin').__file__), 'locale') + for language_code, language_name in settings.LANGUAGES: + try: + catalog = gettext.translation('djangojs', path, [language_code]) + except IOError: + continue + if month_string in catalog._catalog: + month_names = catalog._catalog[month_string] + else: + month_names = month_string + + # Get the expected caption + may_translation = month_names.split(' ')[4] + expected_caption = '{0:s} {1:d}'.format(may_translation, 1984) + + # Test with every locale + with override_settings(LANGUAGE_CODE=language_code, USE_L10N=True): + + # Open a page that has a date picker widget + self.selenium.get('{}{}'.format(self.live_server_url, + '/admin_widgets/member/{}/'.format(member.pk))) + + # Click on the calendar icon + self.selenium.find_element_by_id('calendarlink0').click() + + # Get the calendar caption + calendar0 = self.selenium.find_element_by_id('calendarin0') + caption = calendar0.find_element_by_tag_name('caption') + + # Make sure that the right month and year are displayed + self.assertEqual(caption.text, expected_caption) + class DateTimePickerSeleniumChromeTests(DateTimePickerSeleniumFirefoxTests): webdriver_class = 'selenium.webdriver.chrome.webdriver.WebDriver' |
