Merge pull request #12848 from eduNEXT/juancamilom/TNL-4204
a first contribution to fix TNL-4204 byte sized bug
This commit is contained in:
@@ -440,8 +440,10 @@ class CourseInfoModule(CourseInfoFields, HtmlModuleMixin):
|
||||
return self.data
|
||||
else:
|
||||
course_updates = [item for item in self.items if item.get('status') == self.STATUS_VISIBLE]
|
||||
course_updates.sort(key=lambda item: CourseInfoModule.safe_parse_date(item['date']), reverse=True)
|
||||
|
||||
course_updates.sort(
|
||||
key=lambda item: (CourseInfoModule.safe_parse_date(item['date']), item['id']),
|
||||
reverse=True
|
||||
)
|
||||
context = {
|
||||
'visible_updates': course_updates[:3],
|
||||
'hidden_updates': course_updates[3:],
|
||||
|
||||
@@ -181,3 +181,66 @@ class CourseInfoModuleTestCase(unittest.TestCase):
|
||||
info_module.get_html()
|
||||
except ValueError:
|
||||
self.fail("CourseInfoModule could not parse an invalid date!")
|
||||
|
||||
def test_updates_order(self):
|
||||
"""
|
||||
Tests that a course info module will render its updates in the correct order.
|
||||
"""
|
||||
sample_update_data = [
|
||||
{
|
||||
"id": 3,
|
||||
"date": "March 18, 1982",
|
||||
"content": "This is a very important update that was inserted last with an older date!",
|
||||
"status": CourseInfoModule.STATUS_VISIBLE,
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"date": "January 1, 2012",
|
||||
"content": "This is a very important update that was inserted first!",
|
||||
"status": CourseInfoModule.STATUS_VISIBLE,
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"date": "January 1, 2012",
|
||||
"content": "This is a very important update that was inserted second!",
|
||||
"status": CourseInfoModule.STATUS_VISIBLE,
|
||||
}
|
||||
]
|
||||
info_module = CourseInfoModule(
|
||||
Mock(),
|
||||
Mock(),
|
||||
DictFieldData({'items': sample_update_data, 'data': ""}),
|
||||
Mock()
|
||||
)
|
||||
|
||||
# This is the expected context that should be used by the render function
|
||||
expected_context = {
|
||||
'visible_updates': [
|
||||
{
|
||||
"id": 2,
|
||||
"date": "January 1, 2012",
|
||||
"content": "This is a very important update that was inserted second!",
|
||||
"status": CourseInfoModule.STATUS_VISIBLE,
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"date": "January 1, 2012",
|
||||
"content": "This is a very important update that was inserted first!",
|
||||
"status": CourseInfoModule.STATUS_VISIBLE,
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"date": "March 18, 1982",
|
||||
"content": "This is a very important update that was inserted last with an older date!",
|
||||
"status": CourseInfoModule.STATUS_VISIBLE,
|
||||
}
|
||||
],
|
||||
'hidden_updates': [],
|
||||
}
|
||||
template_name = "{0}/course_updates.html".format(info_module.TEMPLATE_DIR)
|
||||
info_module.get_html()
|
||||
# Assertion to validate that render function is called with the expected context
|
||||
info_module.system.render_template.assert_called_once_with(
|
||||
template_name,
|
||||
expected_context
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user