Commit 9781f9bb by Clinton Blackburn Committed by GitHub

Pulling pacing type from marketing site (#304)

ECOM-5481
parent d3f6cb44
......@@ -124,11 +124,9 @@ class CoursesApiDataLoader(AbstractDataLoader):
'end': self.parse_date(body['end']),
'enrollment_start': self.parse_date(body['enrollment_start']),
'enrollment_end': self.parse_date(body['enrollment_end']),
'pacing_type': self.get_pacing_type(body),
}
# When using a marketing site, only date (excluding start date) and pacing information
# should come from the Course API.
# When using a marketing site, only dates (excluding start) should come from the Course API.
if not self.partner.has_marketing_site:
defaults.update({
'start': self.parse_date(body['start']),
......@@ -137,6 +135,7 @@ class CoursesApiDataLoader(AbstractDataLoader):
'short_description_override': body['short_description'],
'video': self.get_courserun_video(body),
'status': CourseRun.Status.Published,
'pacing_type': self.get_pacing_type(body),
})
course_run, __ = course.course_runs.update_or_create(key__iexact=key, defaults=defaults)
......
......@@ -388,6 +388,10 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
image_url = self._get_nested_url(data.get('field_course_image_featured_card'))
return self.get_or_create_video(video_url, image_url)
def get_pacing_type(self, data):
self_paced = data.get('field_course_self_paced', False)
return CourseRun.Pacing.Self if self_paced else CourseRun.Pacing.Instructor
def create_course_run(self, course, data):
uuid = data['uuid']
key = data['field_course_id']
......@@ -406,6 +410,7 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
'card_image_url': self._get_nested_url(data.get('field_course_image_promoted')),
'status': self.get_course_run_status(data),
'start': start,
'pacing_type': self.get_pacing_type(data),
}
try:
......
......@@ -1979,7 +1979,7 @@ MARKETING_SITE_API_COURSE_BODIES = [
'field_course_code_override': None,
'field_course_video_link_mp4': [],
'field_course_video_duration': None,
'field_course_self_paced': False,
'field_course_self_paced': True,
'field_course_new': None,
'field_course_registration_dates': {
'value': '1384348442',
......
......@@ -144,7 +144,6 @@ class CoursesApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, TestCas
'end': self.loader.parse_date(body['end']),
'enrollment_start': self.loader.parse_date(body['enrollment_start']),
'enrollment_end': self.loader.parse_date(body['enrollment_end']),
'pacing_type': self.loader.get_pacing_type(body),
'card_image_url': None,
'title_override': None,
'short_description_override': None,
......@@ -159,6 +158,7 @@ class CoursesApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, TestCas
'short_description_override': self.loader.clean_string(body['short_description']),
'video': self.loader.get_courserun_video(body),
'status': CourseRun.Status.Published,
'pacing_type': self.loader.get_pacing_type(body),
})
for field, value in expected_values.items():
......
......@@ -387,6 +387,17 @@ class CourseMarketingSiteDataLoaderTests(AbstractMarketingSiteDataLoaderTestMixi
self.assertIsNone(self.loader.get_video({}))
@ddt.unpack
@ddt.data(
(True, CourseRun.Pacing.Self),
(False, CourseRun.Pacing.Instructor),
(None, CourseRun.Pacing.Instructor),
('', CourseRun.Pacing.Instructor),
)
def test_get_pacing_type(self, data_value, expected_pacing_type):
data = {'field_course_self_paced': data_value}
self.assertEqual(self.loader.get_pacing_type(data), expected_pacing_type)
def assert_course_loaded(self, data):
course = self._get_course(data)
......@@ -432,7 +443,8 @@ class CourseMarketingSiteDataLoaderTests(AbstractMarketingSiteDataLoaderTestMixi
'slug': data['url'].split('/')[-1],
'card_image_url': (data.get('field_course_image_promoted') or {}).get('url'),
'status': self.loader.get_course_run_status(data),
'start': start
'start': start,
'pacing_type': self.loader.get_pacing_type(data),
}
for field, value in expected_values.items():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment