Merge pull request #1745 from MITx/feature/rocha/fix-advertised-start
Display advertised date correctly if it is an ISO date
This commit is contained in:
@@ -635,8 +635,17 @@ class CourseDescriptor(CourseFields, SequenceDescriptor):
|
||||
|
||||
@property
|
||||
def start_date_text(self):
|
||||
def try_parse_iso_8601(text):
|
||||
try:
|
||||
result = datetime.strptime(text, "%Y-%m-%dT%H:%M")
|
||||
result = result.strftime("%b %d, %Y")
|
||||
except ValueError:
|
||||
result = text.title()
|
||||
|
||||
return result
|
||||
|
||||
if isinstance(self.advertised_start, basestring):
|
||||
return self.advertised_start
|
||||
return try_parse_iso_8601(self.advertised_start)
|
||||
elif self.advertised_start is None and self.start is None:
|
||||
return 'TBD'
|
||||
else:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import unittest
|
||||
from time import strptime
|
||||
|
||||
from fs.memoryfs import MemoryFS
|
||||
|
||||
from mock import Mock, patch
|
||||
@@ -108,7 +109,22 @@ class IsNewCourseTestCase(unittest.TestCase):
|
||||
print "Comparing %s to %s" % (a, b)
|
||||
assertion(a_score, b_score)
|
||||
|
||||
@patch('xmodule.course_module.time.gmtime')
|
||||
def test_start_date_text(self, gmtime_mock):
|
||||
gmtime_mock.return_value = NOW
|
||||
|
||||
settings = [
|
||||
# start, advertized, result
|
||||
('2012-12-02T12:00', None, 'Dec 02, 2012'),
|
||||
('2012-12-02T12:00', '2011-11-01T12:00', 'Nov 01, 2011'),
|
||||
('2012-12-02T12:00', 'Spring 2012', 'Spring 2012'),
|
||||
('2012-12-02T12:00', 'November, 2011', 'November, 2011'),
|
||||
]
|
||||
|
||||
for s in settings:
|
||||
d = self.get_dummy_course(start=s[0], advertised_start=s[1])
|
||||
print "Checking start=%s advertised=%s" % (s[0], s[1])
|
||||
self.assertEqual(d.start_date_text, s[2])
|
||||
|
||||
@patch('xmodule.course_module.time.gmtime')
|
||||
def test_is_newish(self, gmtime_mock):
|
||||
|
||||
Reference in New Issue
Block a user