Files
edx-platform/xmodule/tests/test_tabs.py
2022-06-20 18:20:06 +05:00

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)