From 814cd560344f38a9394c604b761c02e68ec50900 Mon Sep 17 00:00:00 2001 From: Victor Shnayder Date: Mon, 10 Sep 2012 10:38:17 -0400 Subject: [PATCH 1/2] return proper error codes for 404 and 500 errors --- lms/djangoapps/static_template_view/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/static_template_view/views.py b/lms/djangoapps/static_template_view/views.py index 90087e06d6..8ab6216eda 100644 --- a/lms/djangoapps/static_template_view/views.py +++ b/lms/djangoapps/static_template_view/views.py @@ -6,6 +6,7 @@ from mitxmako.shortcuts import render_to_response, render_to_string from django.shortcuts import redirect from django.conf import settings +from django.http import HttpResponseNotFound, HttpResponseServerError from django_future.csrf import ensure_csrf_cookie from util.cache import cache_if_anonymous @@ -40,9 +41,9 @@ def render(request, template): def render_404(request): - return render_to_response('static_templates/404.html', {}) + return HttpResponseNotFound(render_to_string('static_templates/404.html', {})) def render_500(request): - return render_to_response('static_templates/server-error.html', {}) + return HttpResponseServerError(render_to_string('static_templates/server-error.html', {})) From 779f86569128e20d857a655a911dda61af362cf2 Mon Sep 17 00:00:00 2001 From: Victor Shnayder Date: Mon, 10 Sep 2012 10:49:12 -0400 Subject: [PATCH 2/2] remove check-for-404 hack from tests now that we get real 404s --- lms/djangoapps/courseware/tests/tests.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/lms/djangoapps/courseware/tests/tests.py b/lms/djangoapps/courseware/tests/tests.py index 62456d65d5..f3b086748d 100644 --- a/lms/djangoapps/courseware/tests/tests.py +++ b/lms/djangoapps/courseware/tests/tests.py @@ -222,16 +222,9 @@ class PageLoader(ActivateLoginTestCase): handling. """ resp = self.client.get(url) - # HACK: workaround the bug that returns 200 instead of 404. - # TODO (vshnayder): once we're returning 404s, get rid of this if. - if code != 404: - self.assertEqual(resp.status_code, code) - # And 'page not found' shouldn't be in the returned page - self.assertTrue(resp.content.lower().find('page not found') == -1) - else: - # look for "page not found" instead of the status code - #print resp.content - self.assertTrue(resp.content.lower().find('page not found') != -1) + self.assertEqual(resp.status_code, code, + "got code {0} for url '{1}'. Expected code {2}" + .format(resp.status_code, url, code)) def check_pages_load(self, course_name, data_dir, modstore):