Example #1
0
    def test_gitlog_date(self):
        """
        Make sure the date is timezone-aware and being converted/formatted
        properly.
        """

        tz_names = [
            "America/New_York",  # UTC - 5
            "Asia/Pyongyang",  # UTC + 9
            "Europe/London",  # UTC
            "Canada/Yukon",  # UTC - 8
            "Europe/Moscow",  # UTC + 4
        ]
        tz_format = DEFAULT_DATE_TIME_FORMAT

        self._setstaff_login()
        self._mkdir(settings.GIT_REPO_DIR)

        self._add_edx4edx()
        date = CourseGitLog.objects.all().first().created.replace(tzinfo=UTC)

        for timezone in tz_names:
            with (override_settings(TIME_ZONE=timezone)):  # lint-amnesty, pylint: disable=superfluous-parens
                date_text = get_time_display(date, tz_format,
                                             settings.TIME_ZONE)
                response = self.client.get(reverse("sysadmin:gitlogs"))
                self.assertContains(response, date_text)

        self._rm_edx4edx()
Example #2
0
    def test_gitlog_date(self):
        """
        Make sure the date is timezone-aware and being converted/formatted
        properly.
        """

        tz_names = [
            'America/New_York',  # UTC - 5
            'Asia/Pyongyang',  # UTC + 9
            'Europe/London',  # UTC
            'Canada/Yukon',  # UTC - 8
            'Europe/Moscow',  # UTC + 4
        ]
        tz_format = DEFAULT_DATE_TIME_FORMAT

        self._setstaff_login()
        self._mkdir(settings.GIT_REPO_DIR)

        self._add_edx4edx()
        date = CourseImportLog.objects.first().created.replace(tzinfo=UTC)

        for timezone in tz_names:
            with (override_settings(TIME_ZONE=timezone)):
                date_text = get_time_display(date, tz_format,
                                             settings.TIME_ZONE)
                response = self.client.get(reverse('gitlogs'))
                self.assertContains(response, date_text)

        self._rm_edx4edx()
Example #3
0
def change_time_display(cil_created):
    """change time display to defualt settings format"""
    return get_time_display(
        cil_created.replace(tzinfo=UTC),
        DEFAULT_DATE_TIME_FORMAT,
        coerce_tz=settings.TIME_ZONE,
    )
Example #4
0
    def test_expiration_timezone(self):
        # Test that expiration datetimes are saved and retrieved with the timezone set to UTC.
        # This verifies the fix for a bug in which the date displayed to users was different
        # than the date in Django admin.
        user = UserFactory.create(is_staff=True, is_superuser=True)
        user.save()
        course = CourseFactory.create()
        expiration = datetime(2015,
                              10,
                              20,
                              1,
                              10,
                              23,
                              tzinfo=timezone(settings.TIME_ZONE))
        CourseOverview.load_from_module_store(course.id)

        data = {
            'course': str(course.id),
            'mode_slug': 'verified',
            'mode_display_name': 'verified',
            'min_price': 10,
            'currency': 'usd',
            '_expiration_datetime_0': expiration.date(
            ),  # due to django admin datetime widget passing as separate vals
            '_expiration_datetime_1': expiration.time(),
        }

        self.client.login(username=user.username, password='******')

        # Create a new course mode from django admin page
        response = self.client.post(
            reverse('admin:course_modes_coursemode_add'), data=data)
        self.assertRedirects(
            response, reverse('admin:course_modes_coursemode_changelist'))

        course_mode = CourseMode.objects.get(course_id=str(course.id),
                                             mode_slug='verified')

        # Verify that datetime is appears on list page
        response = self.client.get(
            reverse('admin:course_modes_coursemode_changelist'))
        self.assertContains(
            response, get_time_display(expiration, '%B %d, %Y, %H:%M  %p'))

        # Verify that on the edit page the datetime value appears as UTC.
        resp = self.client.get(
            reverse('admin:course_modes_coursemode_change',
                    args=(course_mode.id, )))
        self.assertContains(resp, expiration.date())
        self.assertContains(resp, expiration.time())

        # Verify that the expiration datetime is the same as what we set
        # (hasn't changed because of a timezone translation).
        course_mode.refresh_from_db()
        assert course_mode.expiration_datetime.replace(
            tzinfo=None) == expiration.replace(tzinfo=None)
def test_get_time_display_coerce():
    test_time_standard = datetime(1992, 1, 12, 15, 3, 30, tzinfo=utc)
    test_time_daylight = datetime(1992, 7, 12, 15, 3, 30, tzinfo=utc)
    assert get_time_display(test_time_standard, None, coerce_tz="US/Pacific") == "Jan 12, 1992 at 07:03 PST"
    assert get_time_display(test_time_standard, None, coerce_tz="NONEXISTENTTZ") == "Jan 12, 1992 at 15:03 UTC"
    assert get_time_display(test_time_standard, '%b %d %H:%M', coerce_tz="US/Pacific") == "Jan 12 07:03"
    assert get_time_display(test_time_daylight, None, coerce_tz="US/Pacific") == "Jul 12, 1992 at 08:03 PDT"
    assert get_time_display(test_time_daylight, None, coerce_tz="NONEXISTENTTZ") == "Jul 12, 1992 at 15:03 UTC"
    assert get_time_display(test_time_daylight, '%b %d %H:%M', coerce_tz="US/Pacific") == "Jul 12 08:03"
Example #6
0
def test_get_time_pass_through():
    test_time = datetime(1992, 3, 12, 15, 3, 30, tzinfo=utc)
    assert get_time_display(test_time) == "Mar 12, 1992 at 15:03 UTC"
    assert get_time_display(test_time, None) == "Mar 12, 1992 at 15:03 UTC"
    assert get_time_display(test_time, "%") == "Mar 12, 1992 at 15:03 UTC"
Example #7
0
def test_get_time_display():
    test_time = datetime(1992, 3, 12, 15, 3, 30, tzinfo=utc)
    assert get_time_display(test_time, 'dummy text') == "dummy text"
    assert get_time_display(test_time, '%b %d %Y') == "Mar 12 1992"
    assert get_time_display(test_time, '%b %d %Y %Z') == "Mar 12 1992 UTC"
    assert get_time_display(test_time, '%b %d %H:%M') == "Mar 12 15:03"
Example #8
0
def test_get_time_disp_ret_empty():
    assert get_time_display(None) == ""
    test_time = datetime(1992, 3, 12, 15, 3, 30, tzinfo=utc)
    assert get_time_display(test_time, "") == ""
Example #9
0
 def expiration_datetime_custom(self, obj):
     """adding custom column to show the expiry_datetime"""
     if obj.expiration_datetime:
         return get_time_display(obj.expiration_datetime,
                                 '%B %d, %Y, %H:%M  %p')