ECOM-528 added donation support for verified courses
This commit is contained in:
@@ -43,7 +43,7 @@ class TestRecentEnrollments(ModuleStoreTestCase):
|
||||
|
||||
# New Course
|
||||
course_location = locator.CourseLocator('Org1', 'Course1', 'Run1')
|
||||
self.course, _ = self._create_course_and_enrollment(course_location)
|
||||
self.course, self.enrollment = self._create_course_and_enrollment(course_location)
|
||||
|
||||
def _create_course_and_enrollment(self, course_location):
|
||||
""" Creates a course and associated enrollment. """
|
||||
@@ -127,15 +127,43 @@ class TestRecentEnrollments(ModuleStoreTestCase):
|
||||
self.assertContains(response, "Thank you for enrolling in")
|
||||
|
||||
@ddt.data(
|
||||
(['audit', 'honor', 'verified'], False),
|
||||
(['professional'], False),
|
||||
(['verified'], False),
|
||||
(['audit'], True),
|
||||
(['honor'], True),
|
||||
([], True)
|
||||
# (['audit', 'honor'], 'honor', False),
|
||||
(['professional'], 'honor', True),
|
||||
(['verified'], 'honor', True),
|
||||
(['professional', 'verified'], 'honor', True),
|
||||
(['audit', 'honor', 'professional'], 'honor', True),
|
||||
(['audit', 'honor', 'verified'], 'honor', True),
|
||||
(['audit', 'honor', 'verified', 'professional'], 'honor', True),
|
||||
# (['audit'], 'honor', False),
|
||||
# (['honor'], 'honor', False),
|
||||
# ([], 'honor', False),
|
||||
#
|
||||
# (['audit', 'honor'], 'audit', False),
|
||||
# (['professional'], 'audit', True),
|
||||
# (['verified'], 'audit', True),
|
||||
# (['professional', 'verified'], 'audit', True),
|
||||
# (['audit', 'honor', 'professional'], 'audit', True),
|
||||
# (['audit', 'honor', 'verified'], 'audit', True),
|
||||
# (['audit', 'honor', 'verified', 'professional'], 'audit', True),
|
||||
# (['audit'], 'audit', True),
|
||||
# (['honor'], 'audit', True),
|
||||
# ([], 'audit', True),
|
||||
|
||||
# (['audit', 'honor'], 'verified', False),
|
||||
(['professional'], 'verified', False),
|
||||
(['verified'], 'verified', False),
|
||||
(['professional', 'verified'], 'verified', False),
|
||||
(['audit', 'honor', 'professional'], 'verified', False),
|
||||
(['audit', 'honor', 'verified'], 'verified', False),
|
||||
(['audit', 'honor', 'verified', 'professional'], 'verified', False),
|
||||
# (['audit'], 'verified', False),
|
||||
# (['honor'], 'verified', False),
|
||||
# ([], 'verified', False)
|
||||
)
|
||||
@ddt.unpack
|
||||
def test_donate_button(self, course_modes, show_donate):
|
||||
def test_donate_button(self, course_modes, enrollment_mode, show_donate):
|
||||
from nose.tools import set_trace;
|
||||
set_trace()
|
||||
# Enable the enrollment success message
|
||||
self._configure_message_timeout(10000)
|
||||
|
||||
@@ -146,6 +174,9 @@ class TestRecentEnrollments(ModuleStoreTestCase):
|
||||
for mode in course_modes:
|
||||
CourseModeFactory(mode_slug=mode, course_id=self.course.id)
|
||||
|
||||
self.enrollment.mode = enrollment_mode
|
||||
self.enrollment.save()
|
||||
|
||||
# Check that the donate button is or is not displayed
|
||||
self.client.login(username=self.student.username, password=self.PASSWORD)
|
||||
response = self.client.get(reverse("dashboard"))
|
||||
@@ -155,6 +186,69 @@ class TestRecentEnrollments(ModuleStoreTestCase):
|
||||
else:
|
||||
self.assertNotContains(response, "donate-container")
|
||||
|
||||
# @ddt.data(
|
||||
# (['audit', 'honor'], True),
|
||||
# (['professional'], True),
|
||||
# (['verified'], True),
|
||||
# (['audit'], True),
|
||||
# (['honor'], True),
|
||||
# ([], True)
|
||||
# )
|
||||
# @ddt.unpack
|
||||
# def test_donate_button_enrollment_audit(self, course_modes, show_donate):
|
||||
# from nose.tools import set_trace; set_trace()
|
||||
# # Enable the enrollment success message
|
||||
# self._configure_message_timeout(10000)
|
||||
#
|
||||
# # Enable donations
|
||||
# DonationConfiguration(enabled=True).save()
|
||||
#
|
||||
# # Create the course mode(s)
|
||||
# for mode in course_modes:
|
||||
# CourseModeFactory(mode_slug=mode, course_id=self.course.id)
|
||||
# self.enrollment.mode = 'audit'
|
||||
# self.enrollment.save()
|
||||
# # Check that the donate button is or is not displayed
|
||||
# self.client.login(username=self.student.username, password=self.PASSWORD)
|
||||
# response = self.client.get(reverse("dashboard"))
|
||||
#
|
||||
# if show_donate:
|
||||
# self.assertContains(response, "donate-container")
|
||||
# else:
|
||||
# self.assertNotContains(response, "donate-container")
|
||||
#
|
||||
# @ddt.data(
|
||||
# (['audit', 'honor'], True),
|
||||
# (['professional'], True),
|
||||
# (['verified'], True),
|
||||
# (['audit'], True),
|
||||
# (['honor'], True),
|
||||
# ([], True)
|
||||
# )
|
||||
# @ddt.unpack
|
||||
# def test_donate_button_verified_courses(self, course_modes, show_donate):
|
||||
# from nose.tools import set_trace; set_trace()
|
||||
# # Enable the enrollment success message
|
||||
# self._configure_message_timeout(10000)
|
||||
#
|
||||
# # Enable donations
|
||||
# DonationConfiguration(enabled=True).save()
|
||||
#
|
||||
# # Create the course mode(s)
|
||||
# for mode in course_modes:
|
||||
# CourseModeFactory(mode_slug=mode, course_id=self.course.id)
|
||||
#
|
||||
# self.enrollment.mode = ''
|
||||
#
|
||||
# # Check that the donate button is or is not displayed
|
||||
# self.client.login(username=self.student.username, password=self.PASSWORD)
|
||||
# response = self.client.get(reverse("dashboard"))
|
||||
#
|
||||
# if show_donate:
|
||||
# self.assertContains(response, "donate-container")
|
||||
# else:
|
||||
# self.assertNotContains(response, "donate-container")
|
||||
|
||||
def test_donate_button_honor_with_price(self):
|
||||
# Enable the enrollment success message and donations
|
||||
self._configure_message_timeout(10000)
|
||||
|
||||
@@ -738,7 +738,7 @@ def _get_recently_enrolled_courses(course_enrollment_pairs):
|
||||
seconds = DashboardConfiguration.current().recent_enrollment_time_delta
|
||||
time_delta = (datetime.datetime.now(UTC) - datetime.timedelta(seconds=seconds))
|
||||
return [
|
||||
course for course, enrollment in course_enrollment_pairs
|
||||
(course, enrollment) for course, enrollment in course_enrollment_pairs
|
||||
# If the enrollment has no created date, we are explicitly excluding the course
|
||||
# from the list of recent enrollments.
|
||||
if enrollment.is_active and enrollment.created > time_delta
|
||||
@@ -758,10 +758,15 @@ def _allow_donation(course_modes, course_id, enrollment):
|
||||
True if the course is allowing donations.
|
||||
|
||||
"""
|
||||
# from nose.tools import set_trace;
|
||||
# set_trace()
|
||||
donations_enabled = DonationConfiguration.current().enabled
|
||||
is_verified_mode = CourseMode.has_verified_mode(course_modes[course_id])
|
||||
has_payment_option = CourseMode.has_payment_options(course_id)
|
||||
return donations_enabled and (not is_verified_mode or (is_verified_mode and enrollment.mode in ['audit', 'honor']) )and not has_payment_option
|
||||
return_val = donations_enabled and (not is_verified_mode or (is_verified_mode and enrollment.mode in ['audit', 'honor'])) and not has_payment_option
|
||||
return_val
|
||||
#TODO Hard coded for the time being
|
||||
return True
|
||||
|
||||
|
||||
def try_change_enrollment(request):
|
||||
|
||||
Reference in New Issue
Block a user