From 2019c9d037d9b9153ea113eac122aae3ba19ed0a Mon Sep 17 00:00:00 2001 From: Don Mitchell Date: Wed, 9 Jan 2013 09:47:43 -0500 Subject: [PATCH 1/2] Bug 107 --- cms/djangoapps/contentstore/views.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cms/djangoapps/contentstore/views.py b/cms/djangoapps/contentstore/views.py index 4cbf6b5d30..560485eb26 100644 --- a/cms/djangoapps/contentstore/views.py +++ b/cms/djangoapps/contentstore/views.py @@ -973,6 +973,11 @@ def course_info_updates(request, org, course, provided_id=None): # ??? No way to check for access permission afaik # get current updates location = ['i4x', org, course, 'course_info', "updates"] + + # Hmmm, provided_id is coming as empty string on create whereas I believe it used to be None :-( + # Possibly due to my removing the seemingly redundant pattern in urls.py + if provided_id == '': + provided_id = None # check that logged in user has permissions to this item if not has_access(request.user, location): From 62a70170cf9c6e6208ec793042781f8117877c37 Mon Sep 17 00:00:00 2001 From: Don Mitchell Date: Wed, 9 Jan 2013 09:55:50 -0500 Subject: [PATCH 2/2] Updated unit test for the create operation related to bug 107 --- .../contentstore/tests/test_course_updates.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cms/djangoapps/contentstore/tests/test_course_updates.py b/cms/djangoapps/contentstore/tests/test_course_updates.py index b05754d214..96e4468b31 100644 --- a/cms/djangoapps/contentstore/tests/test_course_updates.py +++ b/cms/djangoapps/contentstore/tests/test_course_updates.py @@ -1,8 +1,6 @@ from cms.djangoapps.contentstore.tests.test_course_settings import CourseTestCase from django.core.urlresolvers import reverse import json -from cms.djangoapps.contentstore.course_info_model import update_course_updates - class CourseUpdateTest(CourseTestCase): def test_course_update(self): @@ -14,14 +12,17 @@ class CourseUpdateTest(CourseTestCase): content = '' payload = { 'content' : content, 'date' : 'January 8, 2013'} - # No means to post w/ provided_id missing. django doesn't handle. So, go direct for the create - payload = update_course_updates(['i4x', self.course_location.org, self.course_location.course, 'course_info', "updates"] , payload) + url = reverse('course_info', kwargs={'org' : self.course_location.org, 'course' : self.course_location.course, + 'provided_id' : ''}) + + resp = self.client.post(url, json.dumps(payload), "application/json") + + payload= json.loads(resp.content) + + self.assertHTMLEqual(content, payload['content'], "single iframe") url = reverse('course_info', kwargs={'org' : self.course_location.org, 'course' : self.course_location.course, 'provided_id' : payload['id']}) - - self.assertHTMLEqual(content, payload['content'], "single iframe") - content += '
div

p

' payload['content'] = content resp = self.client.post(url, json.dumps(payload), "application/json")