From fc1e0b663713576d8b1ef1b29d82cfa7b676d6d3 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Wed, 25 May 2016 13:48:31 -0400 Subject: [PATCH] Use the Django TestClient for course_creator unit tests, so that middleware is cleaned up properly --- cms/djangoapps/course_creators/tests/test_views.py | 11 ++++++----- cms/urls.py | 2 +- lms/djangoapps/courseware/tests/test_views.py | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cms/djangoapps/course_creators/tests/test_views.py b/cms/djangoapps/course_creators/tests/test_views.py index fdca3b8d56..fca8e7faaa 100644 --- a/cms/djangoapps/course_creators/tests/test_views.py +++ b/cms/djangoapps/course_creators/tests/test_views.py @@ -5,13 +5,13 @@ Tests course_creators.views.py. from django.contrib.auth.models import User from django.core.exceptions import PermissionDenied from django.test import TestCase, RequestFactory +from django.core.urlresolvers import reverse from course_creators.views import add_user_with_status_unrequested, add_user_with_status_granted from course_creators.views import get_course_creator_status, update_course_creator_group, user_requested_access import mock from student.roles import CourseCreatorRole from student import auth -from edxmako.tests import mako_middleware_process_request class CourseCreatorView(TestCase): @@ -73,11 +73,12 @@ class CourseCreatorView(TestCase): add_user_with_status_unrequested(self.user) self.assertEqual('unrequested', get_course_creator_status(self.user)) - request = RequestFactory().get('/') - request.user = self.user + self.client.login(username=self.user.username, password='foo') - mako_middleware_process_request(request) - user_requested_access(self.user) + # The user_requested_access function renders a template that requires + # request-specific information. Use the django TestClient to supply + # the appropriate request context. + self.client.post(reverse('request_course_creator')) self.assertEqual('pending', get_course_creator_status(self.user)) def test_user_requested_already_granted(self): diff --git a/cms/urls.py b/cms/urls.py index f302d15073..21c92da9fb 100644 --- a/cms/urls.py +++ b/cms/urls.py @@ -76,7 +76,7 @@ urlpatterns += patterns( url(r'^howitworks$', 'howitworks'), url(r'^signup$', 'signup', name='signup'), url(r'^signin$', 'login_page', name='login'), - url(r'^request_course_creator$', 'request_course_creator'), + url(r'^request_course_creator$', 'request_course_creator', name='request_course_creator'), url(r'^course_team/{}(?:/(?P.+))?$'.format(COURSELIKE_KEY_PATTERN), 'course_team_handler'), url(r'^course_info/{}$'.format(settings.COURSE_KEY_PATTERN), 'course_info_handler'), diff --git a/lms/djangoapps/courseware/tests/test_views.py b/lms/djangoapps/courseware/tests/test_views.py index 6eed1fb17e..b1a279d770 100644 --- a/lms/djangoapps/courseware/tests/test_views.py +++ b/lms/djangoapps/courseware/tests/test_views.py @@ -611,7 +611,7 @@ class ViewsTestCase(ModuleStoreTestCase): If `expected_end_text` is None, verifies that the about page *does not* contain the text "Classes End". """ - result = self.client.get(reverse('about_course', args=[unicode(course.id)])) + result = self.client.get(reverse('about_course', args=[unicode(course_id)])) if expected_end_text is not None: self.assertContains(result, "Classes End") self.assertContains(result, expected_end_text)