Commit 28e9ae04 by Ned Batchelder

Tests of the localized start dates

parent b21473f9
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
Tests courseware views.py Tests courseware views.py
""" """
import unittest import unittest
from mock import MagicMock, patch
from datetime import datetime from datetime import datetime
from mock import MagicMock, patch
from pytz import UTC from pytz import UTC
from django.test import TestCase from django.test import TestCase
...@@ -30,6 +31,8 @@ from courseware.tests.modulestore_config import TEST_DATA_MIXED_MODULESTORE ...@@ -30,6 +31,8 @@ from courseware.tests.modulestore_config import TEST_DATA_MIXED_MODULESTORE
from course_modes.models import CourseMode from course_modes.models import CourseMode
import shoppingcart import shoppingcart
from util.tests.test_date_utils import fake_ugettext, fake_pgettext
@override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE) @override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE)
class TestJumpTo(TestCase): class TestJumpTo(TestCase):
...@@ -38,7 +41,6 @@ class TestJumpTo(TestCase): ...@@ -38,7 +41,6 @@ class TestJumpTo(TestCase):
""" """
def setUp(self): def setUp(self):
# Use toy course from XML # Use toy course from XML
self.course_name = 'edX/toy/2012_Fall' self.course_name = 'edX/toy/2012_Fall'
...@@ -71,7 +73,9 @@ class TestJumpTo(TestCase): ...@@ -71,7 +73,9 @@ class TestJumpTo(TestCase):
@override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE) @override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE)
class ViewsTestCase(TestCase): class ViewsTestCase(TestCase):
""" Tests for views.py methods. """ """
Tests for views.py methods.
"""
def setUp(self): def setUp(self):
self.user = User.objects.create(username='dummy', password='123456', self.user = User.objects.create(username='dummy', password='123456',
email='test@mit.edu') email='test@mit.edu')
...@@ -366,3 +370,57 @@ class TestAccordionDueDate(BaseDueDateTests): ...@@ -366,3 +370,57 @@ class TestAccordionDueDate(BaseDueDateTests):
return views.render_accordion( return views.render_accordion(
self.request, course, course.get_children()[0].id, None, None self.request, course, course.get_children()[0].id, None, None
) )
@override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE)
class StartDateTests(ModuleStoreTestCase):
"""
Test that start dates are properly localized and displayed on the student
dashboard.
"""
def setUp(self):
self.request_factory = RequestFactory()
self.user = UserFactory.create()
self.request = self.request_factory.get("foo")
self.request.user = self.user
def set_up_course(self):
"""
Create a stock course with a specific due date.
:param course_kwargs: All kwargs are passed to through to the :class:`CourseFactory`
"""
course = CourseFactory(start=datetime(2013, 9, 16, 7, 17, 28))
course = modulestore().get_instance(course.id, course.location) # pylint: disable=no-member
return course
def get_about_text(self, course_id):
"""
Get the text of the /about page for the course.
"""
text = views.course_about(self.request, course_id).content
return text
@patch('util.date_utils.pgettext', fake_pgettext(translations={
("abbreviated month name", "Sep"): "SEPTEMBER",
}))
@patch('util.date_utils.ugettext', fake_ugettext(translations={
"SHORT_DATE_FORMAT": "%Y-%b-%d",
}))
def test_format_localized_in_studio_course(self):
course = self.set_up_course()
text = self.get_about_text(course.id)
# The start date is set in the set_up_course function above.
self.assertIn("2013-SEPTEMBER-16", text)
@patch('util.date_utils.pgettext', fake_pgettext(translations={
("abbreviated month name", "Jul"): "JULY",
}))
@patch('util.date_utils.ugettext', fake_ugettext(translations={
"SHORT_DATE_FORMAT": "%Y-%b-%d",
}))
def test_format_localized_in_xml_course(self):
text = self.get_about_text('edX/toy/TT_2012_Fall')
# The start date is set in common/test/data/two_toys/policies/TT_2012_Fall/policy.json
self.assertIn("2015-JULY-17", text)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment