From 94b680082aea4d8db565447f6deada0e7d0d0c01 Mon Sep 17 00:00:00 2001 From: Christie Rice <8483753+crice100@users.noreply.github.com> Date: Thu, 14 Mar 2019 15:01:54 -0400 Subject: [PATCH] REVEM-246 Use existing method to get basket page URL --- .../experiments/tests/test_utils.py | 36 +------------------ lms/djangoapps/experiments/utils.py | 24 ++----------- 2 files changed, 4 insertions(+), 56 deletions(-) diff --git a/lms/djangoapps/experiments/tests/test_utils.py b/lms/djangoapps/experiments/tests/test_utils.py index 62eb8573a5..1406cf7132 100644 --- a/lms/djangoapps/experiments/tests/test_utils.py +++ b/lms/djangoapps/experiments/tests/test_utils.py @@ -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) diff --git a/lms/djangoapps/experiments/utils.py b/lms/djangoapps/experiments/utils.py index bd83d6b240..8738a7228d 100644 --- a/lms/djangoapps/experiments/utils.py +++ b/lms/djangoapps/experiments/utils.py @@ -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,