Commit 8cd594e8 by Clinton Blackburn

Added test for professional education enrollment/payment

This test ensures payment is required for professional education courses.

XCOM-500
parent 02d3da21
...@@ -69,9 +69,23 @@ class EnrollmentApiMixin(object): ...@@ -69,9 +69,23 @@ class EnrollmentApiMixin(object):
self.enrollment_api_client = EnrollmentApiClient() self.enrollment_api_client = EnrollmentApiClient()
def assert_user_enrolled(self, username, course_id, mode='honor'): def assert_user_enrolled(self, username, course_id, mode='honor'):
""" Verify the user is enrolled in the given course and mode. """
status = self.enrollment_api_client.get_enrollment_status(username, course_id) status = self.enrollment_api_client.get_enrollment_status(username, course_id)
self.assertDictContainsSubset({'is_active': True, 'mode': mode}, status) self.assertDictContainsSubset({'is_active': True, 'mode': mode}, status)
def assert_user_not_enrolled(self, username, course_id):
""" Verify the user is NOT enrolled in the given course. """
try:
status = self.enrollment_api_client.get_enrollment_status(username, course_id)
except ValueError:
# Silly Enrollment API doesn't actually return data if an enrollment does not exist.
return
# If/when the API is updated, use this code to check enrollment status.
if status:
msg = '{} should NOT be enrolled in {}'.format(username, course_id)
self.assertDictContainsSubset({'is_active': False}, status, msg)
class EcommerceApiMixin(object): class EcommerceApiMixin(object):
@property @property
......
from unittest import skip
from bok_choy.web_app_test import WebAppTest
from acceptance_tests.mixins import LoginMixin, LmsUserMixin, EnrollmentApiMixin
from acceptance_tests.pages import LMSCourseModePage
@skip('Prof. Ed. tests should be run on an as-needed basis.')
class ProfessionalEducationEnrollmentTests(EnrollmentApiMixin, LmsUserMixin, LoginMixin, WebAppTest):
def test_payment_required(self):
""" Verify payment is required before enrolling in a professional education course. """
# Note: Populate this list by querying the course modes/products for prof. ed. course IDs.
course_ids = ()
# Sign into LMS
username, password, email = self.get_lms_user()
self.login_with_lms(email, password)
for course_id in course_ids:
# Visit the course mode page (where auto-enrollment normally occurs)
LMSCourseModePage(self.browser, course_id).visit()
# Verify auto-enrollment does NOT occur for the course
self.assert_user_not_enrolled(username, course_id)
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