Updates to use the is_anonymous flag of basket calculate

[LEARNER-4913]
This commit is contained in:
Albert St. Aubin
2018-04-18 14:52:22 -04:00
parent a9693f4ad6
commit 213673db61
2 changed files with 8 additions and 1 deletions

View File

@@ -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']]

View File

@@ -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']