Skip to content
Snippets Groups Projects
Unverified Commit 6a6c43cd authored by Christie Rice's avatar Christie Rice Committed by GitHub
Browse files

Merge pull request #20002 from edx/crice/REVEM-246_url

REVEM-246 Use existing method to get basket page URL
parents 9c3472ab 94b68008
No related branches found
No related tags found
No related merge requests found
......@@ -4,7 +4,7 @@ Tests of experiment functionality
from decimal import Decimal
from unittest import TestCase
from lms.djangoapps.experiments.utils import get_course_entitlement_price_and_sku, get_program_price_and_skus, \
get_program_purchase_url, get_unenrolled_courses, is_enrolled_in_course_run
get_unenrolled_courses, is_enrolled_in_course_run
from opaque_keys.edx.keys import CourseKey
......@@ -42,40 +42,6 @@ class ExperimentUtilsTests(TestCase):
enrollment_ids = {CourseKey.from_string('course-v1:DelftX+NGIx+RA0')}
self.assertFalse(is_enrolled_in_course_run(course_run, enrollment_ids))
def test_program_url_with_no_skus(self):
url = get_program_purchase_url(None)
self.assertEqual(None, url)
def test_program_url_with_no_skus_and_no_bundle(self):
url = get_program_purchase_url(None, None)
self.assertEqual(None, url)
def test_program_url_with_single_sku(self):
skus = ['9FE0DE2']
expected_url = 'https://ecommerce.edx.org/basket/add/?sku=9FE0DE2'
url = get_program_purchase_url(skus)
self.assertEqual(expected_url, url)
def test_program_url_with_single_sku_and_bundle(self):
skus = ['9FE0DE2']
program_id = 'bef7201a-6f97-40ad-ad17-d5ea8be1eec8'
expected_url = 'https://ecommerce.edx.org/basket/add/?sku=9FE0DE2&bundle=' + program_id
url = get_program_purchase_url(skus, program_id)
self.assertEqual(expected_url, url)
def test_program_url_with_multiple_skus(self):
skus = ['9FE0DE2', 'B37EBA0', 'FDCED11']
expected_url = 'https://ecommerce.edx.org/basket/add/?sku=9FE0DE2&sku=B37EBA0&sku=FDCED11'
url = get_program_purchase_url(skus)
self.assertEqual(expected_url, url)
def test_program_url_with_multiple_skus_and_bundle(self):
skus = ['9FE0DE2', 'B37EBA0', 'FDCED11']
program_id = 'bef7201a-6f97-40ad-ad17-d5ea8be1eec8'
expected_url = 'https://ecommerce.edx.org/basket/add/?sku=9FE0DE2&sku=B37EBA0&sku=FDCED11&bundle=' + program_id
url = get_program_purchase_url(skus, program_id)
self.assertEqual(expected_url, url)
def test_program_price_and_skus_for_empty_courses(self):
price, skus = get_program_price_and_skus([])
self.assertEqual(None, price)
......
......@@ -9,6 +9,7 @@ from decimal import Decimal
from student.models import CourseEnrollment
from django_comment_common.models import Role
from django.utils.timezone import now
from lms.djangoapps.commerce.utils import EcommerceService
from course_modes.models import get_cosmetic_verified_display_price, format_course_price
from courseware.access import has_staff_access_to_preview_mode
from courseware.date_summary import verified_upgrade_deadline_link, verified_upgrade_link_is_valid
......@@ -98,25 +99,6 @@ def check_and_get_upgrade_link_and_date(user, enrollment=None, course=None):
# TODO: clean up as part of REVEM-199 (START)
def get_program_purchase_url(skus, bundle_id=None):
"""
Return a url that will allow the purchase of the courses with these skus
"""
if not skus:
return None
url = 'https://ecommerce.edx.org/basket/add/?'
for sku in skus:
url += 'sku=' + sku + '&'
if bundle_id:
url += 'bundle=' + bundle_id
else:
# Remove trailing & from the skus
url = url[:-1]
return url
def get_program_price_and_skus(courses):
"""
Get the total program price and purchase skus from these courses in the program
......@@ -272,8 +254,8 @@ def get_experiment_user_metadata_context(course, user):
has_courses_left_to_purchase = True
courses_left_to_purchase_price, courses_left_to_purchase_skus = get_program_price_and_skus(
courses_left_to_purchase)
courses_left_to_purchase_url = get_program_purchase_url(courses_left_to_purchase_skus,
program_uuid)
courses_left_to_purchase_url = EcommerceService().get_checkout_page_url(
*courses_left_to_purchase_skus, program_uuid=program_uuid)
program_key = {
'uuid': program_uuid,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment