118 lines
4.7 KiB
Python
118 lines
4.7 KiB
Python
"""
|
|
Tests for CourseTabsListTestCase.
|
|
"""
|
|
from unittest import TestCase
|
|
import ddt
|
|
|
|
from xmodule.tabs import CourseTabList, InvalidTabsException
|
|
|
|
|
|
@ddt.ddt
|
|
class CourseTabsListTestCase(TestCase):
|
|
"""
|
|
Class containing CourseTabsListTestCase tests.
|
|
"""
|
|
|
|
@ddt.data(
|
|
[
|
|
[],
|
|
[]
|
|
],
|
|
[
|
|
[
|
|
{'type': 'courseware', 'course_staff_only': False, 'name': 'Courseware'},
|
|
{'type': 'course_info', 'course_staff_only': False, 'name': 'Course Info'},
|
|
{'type': 'discussion', 'course_staff_only': False, 'name': 'Discussion'},
|
|
{'type': 'wiki', 'course_staff_only': False, 'name': 'Wiki'},
|
|
{'type': 'textbooks', 'course_staff_only': False, 'name': 'Textbooks'},
|
|
{'type': 'progress', 'course_staff_only': False, 'name': 'Progress'}
|
|
],
|
|
[
|
|
{'type': 'courseware', 'course_staff_only': False, 'name': 'Course'},
|
|
{'type': 'discussion', 'course_staff_only': False, 'name': 'Discussion'},
|
|
{'type': 'wiki', 'course_staff_only': False, 'name': 'Wiki'},
|
|
{'type': 'textbooks', 'course_staff_only': False, 'name': 'Textbooks'},
|
|
{'type': 'progress', 'course_staff_only': False, 'name': 'Progress'}
|
|
],
|
|
],
|
|
[
|
|
[
|
|
{'type': 'course_info', 'course_staff_only': False, 'name': 'Home'},
|
|
{'type': 'courseware', 'course_staff_only': False, 'name': 'Course'},
|
|
{'type': 'discussion', 'course_staff_only': False, 'name': 'Discussion'},
|
|
{'type': 'wiki', 'course_staff_only': False, 'name': 'Wiki'},
|
|
{'type': 'textbooks', 'course_staff_only': False, 'name': 'Textbooks'},
|
|
{'type': 'progress', 'course_staff_only': False, 'name': 'Progress'}
|
|
],
|
|
[
|
|
{'type': 'courseware', 'course_staff_only': False, 'name': 'Course'},
|
|
{'type': 'discussion', 'course_staff_only': False, 'name': 'Discussion'},
|
|
{'type': 'wiki', 'course_staff_only': False, 'name': 'Wiki'},
|
|
{'type': 'textbooks', 'course_staff_only': False, 'name': 'Textbooks'},
|
|
{'type': 'progress', 'course_staff_only': False, 'name': 'Progress'}
|
|
],
|
|
]
|
|
)
|
|
@ddt.unpack
|
|
def test_upgrade_tabs(self, tabs, expected_result):
|
|
CourseTabList.upgrade_tabs(tabs)
|
|
self.assertEqual(tabs, expected_result)
|
|
|
|
@ddt.data(
|
|
[
|
|
[],
|
|
True
|
|
],
|
|
[
|
|
[
|
|
{'type': 'courseware', 'course_staff_only': False, 'name': 'Course'},
|
|
],
|
|
True
|
|
],
|
|
[
|
|
[
|
|
{'type': 'course_info', 'course_staff_only': False, 'name': 'Home'},
|
|
],
|
|
False
|
|
],
|
|
[
|
|
[
|
|
{'type': 'course_info', 'course_staff_only': False, 'name': 'Home'},
|
|
{'type': 'courseware', 'course_staff_only': False, 'name': 'Course'},
|
|
{'type': 'discussion', 'course_staff_only': False, 'name': 'Discussion'},
|
|
{'type': 'wiki', 'course_staff_only': False, 'name': 'Wiki'},
|
|
{'type': 'textbooks', 'course_staff_only': False, 'name': 'Textbooks'},
|
|
{'type': 'progress', 'course_staff_only': False, 'name': 'Progress'}
|
|
],
|
|
False
|
|
],
|
|
[
|
|
[
|
|
{'type': 'courseware', 'course_staff_only': False, 'name': 'Course'},
|
|
{'type': 'courseware', 'course_staff_only': False, 'name': 'Course'},
|
|
{'type': 'discussion', 'course_staff_only': False, 'name': 'Discussion'},
|
|
{'type': 'wiki', 'course_staff_only': False, 'name': 'Wiki'},
|
|
{'type': 'textbooks', 'course_staff_only': False, 'name': 'Textbooks'},
|
|
{'type': 'progress', 'course_staff_only': False, 'name': 'Progress'}
|
|
],
|
|
False
|
|
],
|
|
[
|
|
[
|
|
{'type': 'courseware', 'course_staff_only': False, 'name': 'Course'},
|
|
{'type': 'discussion', 'course_staff_only': False, 'name': 'Discussion'},
|
|
{'type': 'wiki', 'course_staff_only': False, 'name': 'Wiki'},
|
|
{'type': 'textbooks', 'course_staff_only': False, 'name': 'Textbooks'},
|
|
{'type': 'progress', 'course_staff_only': False, 'name': 'Progress'}
|
|
],
|
|
True
|
|
]
|
|
)
|
|
@ddt.unpack
|
|
def test_validate_tabs(self, tabs, expected_success):
|
|
if not expected_success:
|
|
with self.assertRaises(InvalidTabsException):
|
|
CourseTabList.validate_tabs(tabs)
|
|
else:
|
|
CourseTabList.validate_tabs(tabs)
|