Commit bf916b66 by Julia Hansbrough

Fixes from Daian's CR

parent fcab46b1
from mock import Mock from mock import Mock
from django.test import TestCase from django.test import TestCase
from django.test.utils import override_settings
from xmodule.modulestore import Location from xmodule.modulestore import Location
import courseware.access as access import courseware.access as access
from courseware.tests.tests import TEST_DATA_MIXED_MODULESTORE
from .factories import CourseEnrollmentAllowedFactory from .factories import CourseEnrollmentAllowedFactory
import datetime import datetime
from django.utils.timezone import UTC from django.utils.timezone import UTC
from student.tests.factories import UserFactory
from xmodule.modulestore.tests.factories import CourseFactory
@override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE)
class AccessTestCase(TestCase): class AccessTestCase(TestCase):
def test__has_global_staff_access(self): def test__has_global_staff_access(self):
u = Mock(is_staff=False) u = Mock(is_staff=False)
...@@ -108,18 +114,19 @@ class AccessTestCase(TestCase): ...@@ -108,18 +114,19 @@ class AccessTestCase(TestCase):
# Non-staff cannot enroll outside the open enrollment period if not specifically allowed # Non-staff cannot enroll outside the open enrollment period if not specifically allowed
def test__has_access_refund(self): def test__has_access_refund(self):
user = Mock() user = UserFactory.create()
course = CourseFactory.create(org='org', number='test', run='course', display_name='Test Course')
today = datetime.datetime.now(UTC()) today = datetime.datetime.now(UTC())
grace_period = datetime.timedelta(days=14) grace_period = datetime.timedelta(days=14)
one_day_extra = datetime.timedelta(days=1) one_day_extra = datetime.timedelta(days=1)
# User is allowed to receive refund if it is within two weeks of course start date # User is allowed to receive refund if it is within two weeks of course start date
course = Mock(enrollment_start=(today - one_day_extra), id='edX/tests/Whenever') course.enrollment_start = (today - one_day_extra)
self.assertTrue(access._has_access_course_desc(user, course, 'refund')) self.assertTrue(access._has_access_course_desc(user, course, 'refund'))
course = Mock(enrollment_start=(today - grace_period), id='edX/test/Whenever') course.enrollment_start = (today - grace_period)
self.assertTrue(access._has_access_course_desc(user, course, 'refund')) self.assertTrue(access._has_access_course_desc(user, course, 'refund'))
# After two weeks, user may no longer receive a refund # After two weeks, user may no longer receive a refund
course = Mock(enrollment_start=(today - grace_period - one_day_extra), id='edX/test/Whenever') course.enrollment_start = (today - grace_period - one_day_extra)
self.assertFalse(access._has_access_course_desc(user, course, 'refund')) self.assertFalse(access._has_access_course_desc(user, course, 'refund'))
...@@ -413,7 +413,6 @@ class CertificateItem(OrderItem): ...@@ -413,7 +413,6 @@ class CertificateItem(OrderItem):
try: try:
course_id = kwargs['course_id'] course_id = kwargs['course_id']
user = kwargs['user'] user = kwargs['user']
user_email = kwargs['user_email']
# If there's duplicate entries, just grab the first one and refund it (though in most cases we should only get one) # If there's duplicate entries, just grab the first one and refund it (though in most cases we should only get one)
target_certs = CertificateItem.objects.filter(course_id=course_id, user_id=user, status='purchased', mode='verified') target_certs = CertificateItem.objects.filter(course_id=course_id, user_id=user, status='purchased', mode='verified')
...@@ -425,7 +424,7 @@ class CertificateItem(OrderItem): ...@@ -425,7 +424,7 @@ class CertificateItem(OrderItem):
# send billing an email so they can handle refunding # send billing an email so they can handle refunding
subject = _("[Refund] User-Requested Refund") subject = _("[Refund] User-Requested Refund")
message = "User " + str(user) + "(" + str(user_email) + ") has requested a refund on Order #" + str(order_number) + "." message = "User " + str(user) + "(" + str(user.email) + ") has requested a refund on Order #" + str(order_number) + "."
to_email = [settings.PAYMENT_SUPPORT_EMAIL] to_email = [settings.PAYMENT_SUPPORT_EMAIL]
from_email = "support@edx.org" from_email = "support@edx.org"
send_mail(subject, message, from_email, to_email, fail_silently=False) send_mail(subject, message, from_email, to_email, fail_silently=False)
...@@ -433,7 +432,7 @@ class CertificateItem(OrderItem): ...@@ -433,7 +432,7 @@ class CertificateItem(OrderItem):
return target_cert return target_cert
except IndexError: except IndexError:
log.exception("No certificate found") log.exception("Matching CertificateItem not found while trying to refund. User %s, Course %s", user, course_id)
raise IndexError raise IndexError
@classmethod @classmethod
......
...@@ -144,9 +144,9 @@ ...@@ -144,9 +144,9 @@
% if enrollment.mode != "verified": % if enrollment.mode != "verified":
<a href="#unenroll-modal" class="unenroll" rel="leanModal" data-course-id="${course.id}" data-course-number="${course.number}" onclick="document.getElementById('refund-info').innerHTML=''">${_('Unregister')}</a> <a href="#unenroll-modal" class="unenroll" rel="leanModal" data-course-id="${course.id}" data-course-number="${course.number}" onclick="document.getElementById('refund-info').innerHTML=''">${_('Unregister')}</a>
% elif show_refund_option: % elif show_refund_option:
<a href="#unenroll-modal" class="unenroll" rel="leanModal" data-course-id="${course.id}" data-course-number="${course.number}" onclick="document.getElementById('refund-info').innerHTML='You will be refunded for the amount you paid'">${_('Unregister')}</a> <a href="#unenroll-modal" class="unenroll" rel="leanModal" data-course-id="${course.id}" data-course-number="${course.number}" onclick="document.getElementById('refund-info').innerHTML=gettext('You will be refunded for the amount you paid')">${_('Unregister')}</a>
% else: % else:
<a href="#unenroll-modal" class="unenroll" rel="leanModal" data-course-id="${course.id}" data-course-number="${course.number}" onclick="document.getElementById('refund-info').innerHTML='The refund deadline for this course has passed, so you will not receive money back'">${_('Unregister')}</a> <a href="#unenroll-modal" class="unenroll" rel="leanModal" data-course-id="${course.id}" data-course-number="${course.number}" onclick="document.getElementById('refund-info').innerHTML=gettext('The refund deadline for this course has passed, so you will not receive money back')">${_('Unregister')}</a>
% endif % endif
% if show_email_settings: % if show_email_settings:
......
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