def test_transform_launch_points(self): """ Transforming launch points generates list containing a dict that we expect """ content_metadata_item = { 'enrollment_url': 'http://some/enrollment/url/', 'aggregation_key': 'course:edX+DemoX', 'title': 'edX Demonstration Course', 'key': 'edX+DemoX', 'content_type': 'course', 'card_image_url': 'https://edx.devstack.lms:18000/' 'asset-v1:edX+DemoX+Demo_Course+type@asset+block@images_course_image.jpg', 'short_description': 'Some short description.', 'full_description': 'Detailed description of edx demo course.', } exporter = SapSuccessFactorsContentMetadataExporter( 'fake-user', self.config) launch_points = exporter.transform_launch_points(content_metadata_item) assert launch_points[0]['providerID'] == 'EDX' assert launch_points[0]['launchURL'] == content_metadata_item[ 'enrollment_url'] assert launch_points[0]['contentTitle'] == content_metadata_item[ 'title'] assert launch_points[0]['contentID'] == 'edX+DemoX' assert launch_points[0]['launchType'] == 3 assert launch_points[0]['mobileEnabled'] is True assert launch_points[0]['mobileLaunchURL'] == content_metadata_item[ 'enrollment_url']
def test_transform_image(self, content_metadata_item, expected_thumbnail_url): """ Transforming a image gives back the thumbnail URI by checking the content type of the provided `content_metadata_item`. """ exporter = SapSuccessFactorsContentMetadataExporter('fake-user', self.config) assert exporter.transform_image(content_metadata_item) == expected_thumbnail_url
def test_transform_course_description(self, course, expected_description): """ Transforming a course description includes the pacing and start date. """ exporter = SapSuccessFactorsContentMetadataExporter('fake-user', self.config) assert exporter.transform_description(course) == [ { 'locale': 'English', 'value': expected_description } ]
def test_transform_price(self, course_run, expected_price, show_price): """ Transforming a price of a current course run. """ self.config.show_course_price = show_price self.config.save() exporter = SapSuccessFactorsContentMetadataExporter( 'fake-user', self.config) assert exporter.transform_price(course_run) == [{ 'currency': 'USD', 'value': expected_price }]
def test_transform_courserun_title_includes_start(self, course_run): """ Transforming a title gives back the title with start date for course run of type `instructor-paced` or `self-paced`. """ exporter = SapSuccessFactorsContentMetadataExporter('fake-user', self.config) expected_title = '{course_run_title} (Starts: {start_date})'.format( course_run_title=course_run['title'], start_date=parse_lms_api_datetime(course_run['start']).strftime('%B %Y') ) assert exporter.transform_courserun_title(course_run) == \ [{ 'locale': 'English', 'value': expected_title }]
def test_transform_courserun_title_includes_enrollment_closed(self, course_run): """ Transforming a title gives back the title with start date and `enrollment closed` message for course run with availability set to `Archived`. """ exporter = SapSuccessFactorsContentMetadataExporter('fake-user', self.config) expected_title = '{course_run_title} ({start_date} - {enrollment_closed})'.format( course_run_title=course_run['title'], start_date=parse_lms_api_datetime(course_run['start']).strftime('%B %Y'), enrollment_closed='Enrollment Closed' ) assert exporter.transform_courserun_title(course_run) == \ [{ 'locale': 'English', 'value': expected_title }]
def test_transform_courserun_title_excludes_start(self): """ Transforming a title gives back just the title if there is not start date. """ course_run = { 'start': None, 'pacing_type': 'self_paced', 'availability': 'Current', 'title': 'edX Demonstration Course', 'content_language': 'en' } exporter = SapSuccessFactorsContentMetadataExporter('fake-user', self.config) assert exporter.transform_courserun_title(course_run) == \ [{ 'locale': 'English', 'value': course_run['title'] }]
def get_content_metadata_exporter(self, user): """ Return a ``SapSuccessFactorsContentMetadataExporter`` instance. """ return SapSuccessFactorsContentMetadataExporter(user, self)