Commit b96f646d by Jesse Shapiro Committed by GitHub

Merge pull request #16178 from open-craft/haikuginger/remove-unnecessary-ent-enrollment

[ENT-606] Remove unused generic Enterprise-related enrollment logic
parents 747611ea f1609800
...@@ -56,7 +56,6 @@ class EnrollmentTestMixin(object): ...@@ -56,7 +56,6 @@ class EnrollmentTestMixin(object):
enrollment_attributes=None, enrollment_attributes=None,
min_mongo_calls=0, min_mongo_calls=0,
max_mongo_calls=0, max_mongo_calls=0,
enterprise_course_consent=None,
linked_enterprise_customer=None, linked_enterprise_customer=None,
): ):
""" """
...@@ -84,9 +83,6 @@ class EnrollmentTestMixin(object): ...@@ -84,9 +83,6 @@ class EnrollmentTestMixin(object):
if email_opt_in is not None: if email_opt_in is not None:
data['email_opt_in'] = email_opt_in data['email_opt_in'] = email_opt_in
if enterprise_course_consent is not None:
data['enterprise_course_consent'] = enterprise_course_consent
if linked_enterprise_customer is not None: if linked_enterprise_customer is not None:
data['linked_enterprise_customer'] = linked_enterprise_customer data['linked_enterprise_customer'] = linked_enterprise_customer
...@@ -966,82 +962,6 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase, Ente ...@@ -966,82 +962,6 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase, Ente
self.assertTrue(is_active) self.assertTrue(is_active)
self.assertEqual(course_mode, updated_mode) self.assertEqual(course_mode, updated_mode)
@override_settings(ENTERPRISE_SERVICE_WORKER_USERNAME='enterprise_worker')
@override_settings(ENABLE_ENTERPRISE_INTEGRATION=True)
def test_enterprise_course_enrollment_invalid_consent(self):
"""Verify that the enterprise_course_consent must be a boolean. """
UserFactory.create(
username='enterprise_worker',
email=self.EMAIL,
password=self.PASSWORD,
)
CourseModeFactory.create(
course_id=self.course.id,
mode_slug=CourseMode.DEFAULT_MODE_SLUG,
mode_display_name=CourseMode.DEFAULT_MODE_SLUG,
)
self.assert_enrollment_status(
expected_status=status.HTTP_400_BAD_REQUEST,
enterprise_course_consent='invalid',
as_server=True,
)
@httpretty.activate
@override_settings(ENTERPRISE_SERVICE_WORKER_USERNAME='enterprise_worker')
@override_settings(ENABLE_ENTERPRISE_INTEGRATION=True)
def test_enterprise_course_enrollment_api_error(self):
"""Verify that enterprise service errors are handled properly. """
UserFactory.create(
username='enterprise_worker',
email=self.EMAIL,
password=self.PASSWORD,
)
CourseModeFactory.create(
course_id=self.course.id,
mode_slug=CourseMode.DEFAULT_MODE_SLUG,
mode_display_name=CourseMode.DEFAULT_MODE_SLUG,
)
self.mock_enterprise_course_enrollment_post_api_failure()
self.assert_enrollment_status(
expected_status=status.HTTP_400_BAD_REQUEST,
enterprise_course_consent=True,
as_server=True,
username='enterprise_worker'
)
self.assertEqual(
httpretty.last_request().path,
'/enterprise/api/v1/enterprise-course-enrollment/',
'No request was made to the mocked enterprise-course-enrollment API'
)
@httpretty.activate
@override_settings(ENTERPRISE_SERVICE_WORKER_USERNAME='enterprise_worker')
@override_settings(ENABLE_ENTERPRISE_INTEGRATION=True)
def test_enterprise_course_enrollment_successful(self):
"""Verify that the enrollment completes when the EnterpriseCourseEnrollment creation succeeds. """
UserFactory.create(
username='enterprise_worker',
email=self.EMAIL,
password=self.PASSWORD,
)
CourseModeFactory.create(
course_id=self.course.id,
mode_slug=CourseMode.DEFAULT_MODE_SLUG,
mode_display_name=CourseMode.DEFAULT_MODE_SLUG,
)
self.mock_enterprise_course_enrollment_post_api(username=self.user.username, course_id=unicode(self.course.id))
self.assert_enrollment_status(
expected_status=status.HTTP_200_OK,
enterprise_course_consent=True,
as_server=True,
username='enterprise_worker'
)
self.assertEqual(
httpretty.last_request().path,
'/enterprise/api/v1/enterprise-course-enrollment/',
'No request was made to the mocked enterprise-course-enrollment API'
)
@httpretty.activate @httpretty.activate
@override_settings(ENTERPRISE_SERVICE_WORKER_USERNAME='enterprise_worker') @override_settings(ENTERPRISE_SERVICE_WORKER_USERNAME='enterprise_worker')
@override_settings(ENABLE_ENTERPRISE_INTEGRATION=True) @override_settings(ENABLE_ENTERPRISE_INTEGRATION=True)
......
...@@ -595,13 +595,10 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -595,13 +595,10 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
} }
) )
enterprise_course_consent = request.data.get('enterprise_course_consent')
explicit_linked_enterprise = request.data.get('linked_enterprise_customer') explicit_linked_enterprise = request.data.get('linked_enterprise_customer')
if (enterprise_course_consent or explicit_linked_enterprise) and has_api_key_permissions and enterprise_enabled(): if explicit_linked_enterprise and has_api_key_permissions and enterprise_enabled():
enterprise_api_client = EnterpriseApiServiceClient() enterprise_api_client = EnterpriseApiServiceClient()
consent_client = ConsentApiServiceClient() consent_client = ConsentApiServiceClient()
# We received an explicitly-linked EnterpriseCustomer for the enrollment
if explicit_linked_enterprise is not None:
try: try:
enterprise_api_client.post_enterprise_course_enrollment(username, unicode(course_id), None) enterprise_api_client.post_enterprise_course_enrollment(username, unicode(course_id), None)
except EnterpriseApiException as error: except EnterpriseApiException as error:
...@@ -615,31 +612,6 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -615,31 +612,6 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
} }
consent_client.provide_consent(**kwargs) consent_client.provide_consent(**kwargs)
# We received an implicit "consent granted" parameter from ecommerce
# TODO: Once ecommerce has been deployed with explicit enterprise support, remove this
# entire chunk of logic, related tests, and any supporting methods no longer required.
elif enterprise_course_consent is not None:
# Check if the enterprise_course_enrollment is a boolean
if not isinstance(enterprise_course_consent, bool):
return Response(
status=status.HTTP_400_BAD_REQUEST,
data={
'message': (u"'{value}' is an invalid enterprise course consent value.").format(
value=enterprise_course_consent
)
}
)
try:
enterprise_api_client.post_enterprise_course_enrollment(
username,
unicode(course_id),
enterprise_course_consent
)
except EnterpriseApiException as error:
log.exception("An unexpected error occurred while creating the new EnterpriseCourseEnrollment "
"for user [%s] in course run [%s]", username, course_id)
raise CourseEnrollmentError(error.message)
enrollment_attributes = request.data.get('enrollment_attributes') enrollment_attributes = request.data.get('enrollment_attributes')
enrollment = api.get_enrollment(username, unicode(course_id)) enrollment = api.get_enrollment(username, unicode(course_id))
mode_changed = enrollment and mode is not None and enrollment['mode'] != mode mode_changed = enrollment and mode is not None and enrollment['mode'] != mode
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment