Skip to content

Commit 7edad37

Browse files
authored
temp: add temp workaround for taxi form post submit url fix (#4567)
1 parent 72a9334 commit 7edad37

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

course_discovery/apps/course_metadata/management/commands/populate_executive_education_data_csv.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from django.conf import settings
1717
from django.core.management import BaseCommand, CommandError
1818

19-
from course_discovery.apps.course_metadata.choices import CourseRunRestrictionType
19+
from course_discovery.apps.course_metadata.choices import CourseRunRestrictionType, ExternalCourseMarketingType
2020
from course_discovery.apps.course_metadata.data_loaders import utils
2121
from course_discovery.apps.course_metadata.data_loaders.utils import map_external_org_code_to_internal_org_code
2222
from course_discovery.apps.course_metadata.utils import fetch_getsmarter_products
@@ -408,5 +408,10 @@ def get_transformed_data(self, partially_filled_csv_dict, product_dict):
408408
),
409409
'external_course_marketing_type': product_dict['productType'],
410410
'taxi_form_id': product_dict['edxTaxiFormId'],
411-
'post_submit_url': utils.format_base64_strings(product_dict['prospectusUrl']),
411+
'post_submit_url': (
412+
utils.format_base64_strings(product_dict['edxPlpUrl']).replace('/lp/', '/info/')
413+
if not product_dict['prospectusUrl'] and
414+
product_dict.get('productType', '').lower() == ExternalCourseMarketingType.Sprint.value
415+
else utils.format_base64_strings(product_dict['prospectusUrl'])
416+
),
412417
}

course_discovery/apps/course_metadata/management/commands/tests/test_populate_executive_education_data_csv.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,39 @@ def test_successful_file_data_population_with_getsmarter_flag_with_multiple_vari
356356
),
357357
)
358358

359+
@mock.patch('course_discovery.apps.course_metadata.utils.GetSmarterEnterpriseApiClient')
360+
def test_taxi_form_post_submit_url_in_case_prospectus_url_is_empty_and_product_type_sprint(
361+
self, mock_get_smarter_client
362+
):
363+
"""
364+
Verify that the taxi form post submit url is set to the edxPlpUrl if the prospectusUrl is empty
365+
and the product type is sprint.
366+
"""
367+
success_api_response = copy.deepcopy(self.SUCCESS_API_RESPONSE)
368+
success_api_response['products'][0]['prospectusUrl'] = ''
369+
success_api_response['products'][0]['productType'] = 'sprint'
370+
success_api_response['products'][0]['edxPlpUrl'] = 'https://example.com/presentations/lp/example-course/'
371+
mock_get_smarter_client.return_value.request.return_value.json.return_value = (
372+
self.mock_get_smarter_client_response(
373+
override_get_smarter_client_response=success_api_response
374+
)
375+
)
376+
with NamedTemporaryFile() as output_csv:
377+
call_command(
378+
'populate_executive_education_data_csv',
379+
'--output_csv', output_csv.name,
380+
'--use_getsmarter_api_client', True,
381+
)
382+
383+
output_csv.seek(0)
384+
with open(output_csv.name, 'r') as csv_file:
385+
reader = csv.DictReader(csv_file)
386+
data_row = next(reader)
387+
assert data_row['Title'] == 'Alternative CSV Course'
388+
assert data_row['External Course Marketing Type'] == 'sprint'
389+
assert data_row['Taxi Form Id'] == 'test-form-id'
390+
assert data_row['Post Submit Url'] == 'https://example.com/presentations/info/example-course/'
391+
359392
@mock.patch("course_discovery.apps.course_metadata.utils.GetSmarterEnterpriseApiClient")
360393
@ddt.data(
361394
("active", str(date.today().isoformat())), ("scheduled", "2024-03-20")

0 commit comments

Comments
 (0)