Commit ff9cea07 by Clinton Blackburn

Updated data loaders to set course run status

ECOM-5411
parent 381b146d
......@@ -135,6 +135,7 @@ class CoursesApiDataLoader(AbstractDataLoader):
'title_override': body['name'],
'short_description_override': body['short_description'],
'video': self.get_courserun_video(body),
'status': CourseRun.Status.Published,
})
course_run, __ = course.course_runs.update_or_create(key__iexact=key, defaults=defaults)
......
......@@ -370,6 +370,9 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
description = self.clean_html(description)
return description
def get_course_run_status(self, data):
return CourseRun.Status.Published if bool(int(data['status'])) else CourseRun.Status.Unpublished
def get_level_type(self, name):
level_type = None
......@@ -397,6 +400,7 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
'language': language,
'slug': slug,
'card_image_url': self._get_nested_url(data.get('field_course_image_promoted')),
'status': self.get_course_run_status(data),
}
try:
......
......@@ -158,6 +158,7 @@ class CoursesApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, TestCas
'title_override': body['name'],
'short_description_override': self.loader.clean_string(body['short_description']),
'video': self.loader.get_courserun_video(body),
'status': CourseRun.Status.Published,
})
for field, value in expected_values.items():
......
......@@ -14,7 +14,8 @@ from course_discovery.apps.course_metadata.data_loaders.marketing_site import (
)
from course_discovery.apps.course_metadata.data_loaders.tests import JSON, mock_data
from course_discovery.apps.course_metadata.data_loaders.tests.mixins import DataLoaderTestMixin
from course_discovery.apps.course_metadata.models import Organization, Subject, Program, Video, Person, Course
from course_discovery.apps.course_metadata.models import Organization, Subject, Program, Video, Person, Course, \
CourseRun
from course_discovery.apps.course_metadata.tests import factories
from course_discovery.apps.ietf_language_tags.models import LanguageTag
......@@ -354,6 +355,15 @@ class CourseMarketingSiteDataLoaderTests(AbstractMarketingSiteDataLoaderTestMixi
name = 'Advanced'
self.assertEqual(self.loader.get_level_type(name).name, name)
@ddt.unpack
@ddt.data(
('0', CourseRun.Status.Unpublished),
('1', CourseRun.Status.Published),
)
def test_get_course_run_status(self, marketing_site_status, expected):
data = {'status': marketing_site_status}
self.assertEqual(self.loader.get_course_run_status(data), expected)
@ddt.data(
{'field_course_body': {'value': 'Test'}},
{'field_course_description': {'value': 'Test'}},
......@@ -417,6 +427,7 @@ class CourseMarketingSiteDataLoaderTests(AbstractMarketingSiteDataLoaderTestMixi
'language': language,
'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),
}
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