diff --git a/openedx/core/djangoapps/programs/tests/test_utils.py b/openedx/core/djangoapps/programs/tests/test_utils.py index 097336b18f..5dcfdf9e38 100644 --- a/openedx/core/djangoapps/programs/tests/test_utils.py +++ b/openedx/core/djangoapps/programs/tests/test_utils.py @@ -1516,6 +1516,7 @@ class TestProgramMarketingDataExtender(ModuleStoreTestCase): data = ProgramMarketingDataExtender(self.program, self.user).extend() self._update_discount_data(mock_discount_data) + self.assertEqual(httpretty.last_request().querystring.get('username')[0], self.user.username) self.assertEqual( data['skus'], [course['course_runs'][0]['seats'][0]['sku'] for course in self.program['courses']] @@ -1545,6 +1546,7 @@ class TestProgramMarketingDataExtender(ModuleStoreTestCase): data = ProgramMarketingDataExtender(self.program, user).extend() self._update_discount_data(mock_discount_data) + self.assertIsNotNone(httpretty.last_request().querystring.get('is_anonymous', None)) self.assertEqual( data['skus'], [course['course_runs'][0]['seats'][0]['sku'] for course in self.program['courses']] diff --git a/openedx/core/djangoapps/programs/utils.py b/openedx/core/djangoapps/programs/utils.py index f87344470a..6b62c4fa69 100644 --- a/openedx/core/djangoapps/programs/utils.py +++ b/openedx/core/djangoapps/programs/utils.py @@ -605,15 +605,20 @@ class ProgramDataExtender(object): if skus: try: api_user = self.user + is_anonymous = False if not self.user.is_authenticated(): user = get_user_model() service_user = user.objects.get(username=settings.ECOMMERCE_SERVICE_WORKER_USERNAME) api_user = service_user + is_anonymous = True api = ecommerce_api_client(api_user) # Make an API call to calculate the discounted price - discount_data = api.baskets.calculate.get(sku=skus) + if is_anonymous: + discount_data = api.baskets.calculate.get(sku=skus, is_anonymous=True) + else: + discount_data = api.baskets.calculate.get(sku=skus, username=self.user.username) program_discounted_price = discount_data['total_incl_tax'] program_full_price = discount_data['total_incl_tax_excl_discounts']