From 62fcc6f23a307d5f7b61f058842b4642439ac490 Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Fri, 5 Sep 2014 14:07:03 -0400 Subject: [PATCH 1/2] Use ddt for shib tests --- .../external_auth/tests/test_shib.py | 284 +++++++++--------- 1 file changed, 143 insertions(+), 141 deletions(-) diff --git a/common/djangoapps/external_auth/tests/test_shib.py b/common/djangoapps/external_auth/tests/test_shib.py index 7880baef0c..780d4e1e19 100644 --- a/common/djangoapps/external_auth/tests/test_shib.py +++ b/common/djangoapps/external_auth/tests/test_shib.py @@ -5,6 +5,7 @@ Tests for Shibboleth Authentication """ import unittest from mock import patch +from ddt import ddt, data from django.conf import settings from django.http import HttpResponseRedirect @@ -74,6 +75,7 @@ def gen_all_identities(): yield _build_identity_dict(mail, display_name, given_name, surname) +@ddt @override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE, SESSION_ENGINE='django.contrib.sessions.backends.cache') class ShibSPTest(ModuleStoreTestCase): """ @@ -271,37 +273,38 @@ class ShibSPTest(ModuleStoreTestCase): self._base_test_extauth_auto_activate_user_with_flag(log_user_string="user.id: 1") @unittest.skipUnless(settings.FEATURES.get('AUTH_USE_SHIB'), "AUTH_USE_SHIB not set") - def test_registration_form(self): + @data(*gen_all_identities()) + def test_registration_form(self, identity): """ Tests the registration form showing up with the proper parameters. Uses django test client for its session support """ - for identity in gen_all_identities(): - client = DjangoTestClient() - # identity k/v pairs will show up in request.META - response = client.get(path='/shib-login/', data={}, follow=False, **identity) + client = DjangoTestClient() + # identity k/v pairs will show up in request.META + response = client.get(path='/shib-login/', data={}, follow=False, **identity) - self.assertEquals(response.status_code, 200) - mail_input_HTML = ' Date: Wed, 17 Sep 2014 10:40:30 -0400 Subject: [PATCH 2/2] Remove test cleanups Since `ddt` should make them unnecessary --- common/djangoapps/external_auth/tests/test_shib.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/common/djangoapps/external_auth/tests/test_shib.py b/common/djangoapps/external_auth/tests/test_shib.py index 780d4e1e19..3b9668aedc 100644 --- a/common/djangoapps/external_auth/tests/test_shib.py +++ b/common/djangoapps/external_auth/tests/test_shib.py @@ -299,9 +299,6 @@ class ShibSPTest(ModuleStoreTestCase): else: self.assertNotContains(response, fullname_input_html) - # clean up b/c we don't want existing ExternalAuthMap for the next run - client.session['ExternalAuthMap'].delete() - @unittest.skipUnless(settings.FEATURES.get('AUTH_USE_SHIB'), "AUTH_USE_SHIB not set") @data(*gen_all_identities()) def test_registration_form_submit(self, identity): @@ -381,12 +378,6 @@ class ShibSPTest(ModuleStoreTestCase): self.assertEqual(profile.name, request2.session['ExternalAuthMap'].external_name) self.assertEqual(profile.name, identity.get('displayName').decode('utf-8')) - # clean up for next loop - request2.session['ExternalAuthMap'].delete() - UserProfile.objects.filter(user=user).delete() - Registration.objects.filter(user=user).delete() - user.delete() - @unittest.skipUnless(settings.FEATURES.get('AUTH_USE_SHIB'), "AUTH_USE_SHIB not set") @data("", "shib:https://idp.stanford.edu/") def test_course_specific_login_and_reg(self, domain): @@ -532,8 +523,6 @@ class ShibSPTest(ModuleStoreTestCase): if course is open_enroll_course or student is shib_student: self.assertEqual(response.status_code, 200) self.assertTrue(CourseEnrollment.is_enrolled(student, course.id)) - # Clean up - CourseEnrollment.unenroll(student, course.id) else: self.assertEqual(response.status_code, 400) self.assertFalse(CourseEnrollment.is_enrolled(student, course.id))