Commit 0b6932f4 by Chris Dodge

add new test to assert that course creation will populate default tabs as…

add new test to assert that course creation will populate default tabs as expected. Also update factory to not override defaults on tabs array. Also simplfy self.tab test condition.
parent 8584aae8
...@@ -312,6 +312,23 @@ class ContentStoreToyCourseTest(ModuleStoreTestCase): ...@@ -312,6 +312,23 @@ class ContentStoreToyCourseTest(ModuleStoreTestCase):
self.assertGreater(len(course.textbooks), 0) self.assertGreater(len(course.textbooks), 0)
def test_default_tabs_on_create_course(self):
module_store = modulestore('direct')
CourseFactory.create(org='edX', course='999', display_name='Robot Super Course')
course_location = Location(['i4x', 'edX', '999', 'course', 'Robot_Super_Course', None])
course = module_store.get_item(course_location)
expected_tabs = []
expected_tabs.append({u'type': u'courseware'})
expected_tabs.append({u'type': u'course_info', u'name': u'Course Info'})
expected_tabs.append({u'type': u'textbooks'})
expected_tabs.append({u'type': u'discussion', u'name': u'Discussion'})
expected_tabs.append({u'type': u'wiki', u'name': u'Wiki'})
expected_tabs.append({u'type': u'progress', u'name': u'Progress'})
self.assertEqual(course.tabs, expected_tabs)
def test_static_tab_reordering(self): def test_static_tab_reordering(self):
module_store = modulestore('direct') module_store = modulestore('direct')
CourseFactory.create(org='edX', course='999', display_name='Robot Super Course') CourseFactory.create(org='edX', course='999', display_name='Robot Super Course')
......
...@@ -410,7 +410,7 @@ class CourseDescriptor(CourseFields, SequenceDescriptor): ...@@ -410,7 +410,7 @@ class CourseDescriptor(CourseFields, SequenceDescriptor):
continue continue
# TODO check that this is still needed here and can't be by defaults. # TODO check that this is still needed here and can't be by defaults.
if not self.tabs or (isinstance(self.tabs, list) and len(self.tabs) == 0): if not self.tabs:
# When calling the various _tab methods, can omit the 'type':'blah' from the # When calling the various _tab methods, can omit the 'type':'blah' from the
# first arg, since that's only used for dispatch # first arg, since that's only used for dispatch
tabs = [] tabs = []
......
...@@ -38,16 +38,6 @@ class XModuleCourseFactory(Factory): ...@@ -38,16 +38,6 @@ class XModuleCourseFactory(Factory):
new_course.display_name = display_name new_course.display_name = display_name
new_course.lms.start = datetime.datetime.now(UTC).replace(microsecond=0) new_course.lms.start = datetime.datetime.now(UTC).replace(microsecond=0)
new_course.tabs = kwargs.pop(
'tabs',
[
{"type": "courseware"},
{"type": "course_info", "name": "Course Info"},
{"type": "discussion", "name": "Discussion"},
{"type": "wiki", "name": "Wiki"},
{"type": "progress", "name": "Progress"}
]
)
# The rest of kwargs become attributes on the course: # The rest of kwargs become attributes on the course:
for k, v in kwargs.iteritems(): for k, v in kwargs.iteritems():
......
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