From a6035698d51c6eb59188951dc3c1d705dfa60926 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 21 Jan 2014 14:12:10 -0500 Subject: [PATCH] Correctly compute course image location when using mongo modulestore [LMS-2073] [STUD-1197] --- cms/djangoapps/contentstore/tests/test_utils.py | 2 -- cms/djangoapps/contentstore/utils.py | 2 +- lms/djangoapps/courseware/courses.py | 2 +- lms/djangoapps/courseware/tests/test_courses.py | 2 -- 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/cms/djangoapps/contentstore/tests/test_utils.py b/cms/djangoapps/contentstore/tests/test_utils.py index 2be461b2c4..181c81b852 100644 --- a/cms/djangoapps/contentstore/tests/test_utils.py +++ b/cms/djangoapps/contentstore/tests/test_utils.py @@ -2,7 +2,6 @@ import collections import copy import mock -from unittest import expectedFailure from django.test import TestCase from django.test.utils import override_settings @@ -168,7 +167,6 @@ class CourseImageTestCase(TestCase): url = utils.course_image_url(course) self.assertEquals(url, '/c4x/edX/999/asset/{0}'.format(course.course_image)) - @expectedFailure def test_non_ascii_image_name(self): # Verify that non-ascii image names are cleaned course = CourseFactory.create(course_image=u'before_\N{SNOWMAN}_after.jpg') diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index 1aeb447331..f5b3196ccb 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -191,7 +191,7 @@ def get_lms_link_for_about_page(location): def course_image_url(course): """Returns the image url for the course.""" - loc = course.location._replace(tag='c4x', category='asset', name=course.course_image) + loc = StaticContent.compute_location(course.location.org, course.location.course, course.course_image) path = StaticContent.get_url_path_from_location(loc) return path diff --git a/lms/djangoapps/courseware/courses.py b/lms/djangoapps/courseware/courses.py index fd8adf998b..119e2e33d6 100644 --- a/lms/djangoapps/courseware/courses.py +++ b/lms/djangoapps/courseware/courses.py @@ -106,7 +106,7 @@ def course_image_url(course): if course.static_asset_path or modulestore().get_modulestore_type(course.location.course_id) == XML_MODULESTORE_TYPE: return '/static/' + (course.static_asset_path or getattr(course, 'data_dir', '')) + "/images/course_image.jpg" else: - loc = course.location.replace(tag='c4x', category='asset', name=course.course_image) + loc = StaticContent.compute_location(course.location.org, course.location.course, course.course_image) _path = StaticContent.get_url_path_from_location(loc) return _path diff --git a/lms/djangoapps/courseware/tests/test_courses.py b/lms/djangoapps/courseware/tests/test_courses.py index 28ba73bc62..0bf7f26a3b 100644 --- a/lms/djangoapps/courseware/tests/test_courses.py +++ b/lms/djangoapps/courseware/tests/test_courses.py @@ -3,7 +3,6 @@ Tests for course access """ import mock -from unittest import expectedFailure from django.http import Http404 from django.test.utils import override_settings @@ -96,7 +95,6 @@ class MongoCourseImageTestCase(ModuleStoreTestCase): course = CourseFactory.create(org='edX', course='999') self.assertEquals(course_image_url(course), '/c4x/edX/999/asset/{0}'.format(course.course_image)) - @expectedFailure def test_non_ascii_image_name(self): # Verify that non-ascii image names are cleaned course = CourseFactory.create(course_image=u'before_\N{SNOWMAN}_after.jpg')