Commit 12e24815 by Clinton Blackburn Committed by Clinton Blackburn

Publishing additional data from Publisher from Discovery

LEARNER-2472
parent 8d296caf
...@@ -8,7 +8,7 @@ from rest_framework.test import APITestCase ...@@ -8,7 +8,7 @@ from rest_framework.test import APITestCase
from course_discovery.apps.core.models import Partner from course_discovery.apps.core.models import Partner
from course_discovery.apps.core.tests.factories import StaffUserFactory, UserFactory from course_discovery.apps.core.tests.factories import StaffUserFactory, UserFactory
from course_discovery.apps.course_metadata.models import CourseRun, Video from course_discovery.apps.course_metadata.models import CourseRun, Video
from course_discovery.apps.course_metadata.tests.factories import OrganizationFactory from course_discovery.apps.course_metadata.tests.factories import OrganizationFactory, PersonFactory
from course_discovery.apps.ietf_language_tags.models import LanguageTag from course_discovery.apps.ietf_language_tags.models import LanguageTag
from course_discovery.apps.publisher.api.v1.views import CourseRunViewSet from course_discovery.apps.publisher.api.v1.views import CourseRunViewSet
from course_discovery.apps.publisher.tests.factories import CourseRunFactory from course_discovery.apps.publisher.tests.factories import CourseRunFactory
...@@ -35,7 +35,8 @@ class CourseRunViewSetTests(APITestCase): ...@@ -35,7 +35,8 @@ class CourseRunViewSetTests(APITestCase):
course__organizations=[organization], course__organizations=[organization],
course__tertiary_subject=None, course__tertiary_subject=None,
lms_course_id='a/b/c', lms_course_id='a/b/c',
transcript_languages=transcript_languages transcript_languages=transcript_languages,
staff=PersonFactory.create_batch(2)
) )
def _set_test_client_domain_and_login(self, partner): def _set_test_client_domain_and_login(self, partner):
...@@ -85,6 +86,10 @@ class CourseRunViewSetTests(APITestCase): ...@@ -85,6 +86,10 @@ class CourseRunViewSetTests(APITestCase):
assert response.data == expected assert response.data == expected
discovery_course_run = CourseRun.objects.get(key=publisher_course_run.lms_course_id) discovery_course_run = CourseRun.objects.get(key=publisher_course_run.lms_course_id)
publisher_course = publisher_course_run.course
discovery_course = discovery_course_run.course
# pylint: disable=no-member
assert discovery_course_run.title_override == publisher_course_run.title_override assert discovery_course_run.title_override == publisher_course_run.title_override
assert discovery_course_run.short_description_override is None assert discovery_course_run.short_description_override is None
assert discovery_course_run.full_description_override is None assert discovery_course_run.full_description_override is None
...@@ -96,11 +101,13 @@ class CourseRunViewSetTests(APITestCase): ...@@ -96,11 +101,13 @@ class CourseRunViewSetTests(APITestCase):
assert discovery_course_run.min_effort == publisher_course_run.min_effort assert discovery_course_run.min_effort == publisher_course_run.min_effort
assert discovery_course_run.max_effort == publisher_course_run.max_effort assert discovery_course_run.max_effort == publisher_course_run.max_effort
assert discovery_course_run.language == publisher_course_run.language assert discovery_course_run.language == publisher_course_run.language
expected = set(publisher_course_run.transcript_languages.all()) # pylint: disable=no-member assert discovery_course_run.weeks_to_complete == publisher_course_run.length
assert discovery_course_run.learner_testimonials == publisher_course.learner_testimonial
expected = set(publisher_course_run.transcript_languages.all())
assert set(discovery_course_run.transcript_languages.all()) == expected assert set(discovery_course_run.transcript_languages.all()) == expected
assert set(discovery_course_run.video_translation_languages.all()) == {publisher_course_run.video_language}
assert set(discovery_course_run.staff.all()) == set(publisher_course_run.staff.all())
publisher_course = publisher_course_run.course
discovery_course = discovery_course_run.course
assert discovery_course.canonical_course_run == discovery_course_run assert discovery_course.canonical_course_run == discovery_course_run
assert discovery_course.partner == partner assert discovery_course.partner == partner
assert discovery_course.title == publisher_course.title assert discovery_course.title == publisher_course.title
...@@ -108,6 +115,8 @@ class CourseRunViewSetTests(APITestCase): ...@@ -108,6 +115,8 @@ class CourseRunViewSetTests(APITestCase):
assert discovery_course.full_description == publisher_course.full_description assert discovery_course.full_description == publisher_course.full_description
assert discovery_course.level_type == publisher_course.level_type assert discovery_course.level_type == publisher_course.level_type
assert discovery_course.video == Video.objects.get(src=publisher_course.video_link) assert discovery_course.video == Video.objects.get(src=publisher_course.video_link)
assert discovery_course.image == publisher_course.image
assert discovery_course.outcome == publisher_course.expected_learnings
expected = list(publisher_course_run.course.organizations.all()) expected = list(publisher_course_run.course.organizations.all())
assert list(discovery_course.authoring_organizations.all()) == expected assert list(discovery_course.authoring_organizations.all()) == expected
expected = {publisher_course.primary_subject, publisher_course.secondary_subject} expected = {publisher_course.primary_subject, publisher_course.secondary_subject}
......
...@@ -110,13 +110,14 @@ class CourseRunViewSet(viewsets.GenericViewSet): ...@@ -110,13 +110,14 @@ class CourseRunViewSet(viewsets.GenericViewSet):
if publisher_course.video_link: if publisher_course.video_link:
video, __ = Video.objects.get_or_create(src=publisher_course.video_link) video, __ = Video.objects.get_or_create(src=publisher_course.video_link)
# TODO Host card images from the Discovery Service CDN
defaults = { defaults = {
'title': publisher_course.title, 'title': publisher_course.title,
'short_description': publisher_course.short_description, 'short_description': publisher_course.short_description,
'full_description': publisher_course.full_description, 'full_description': publisher_course.full_description,
'level_type': publisher_course.level_type, 'level_type': publisher_course.level_type,
'video': video, 'video': video,
'image': publisher_course.image,
'outcome': publisher_course.expected_learnings,
} }
discovery_course, created = Course.objects.update_or_create(partner=partner, key=course_key, defaults=defaults) discovery_course, created = Course.objects.update_or_create(partner=partner, key=course_key, defaults=defaults)
discovery_course.authoring_organizations.add(*publisher_course.organizations.all()) discovery_course.authoring_organizations.add(*publisher_course.organizations.all())
...@@ -138,7 +139,8 @@ class CourseRunViewSet(viewsets.GenericViewSet): ...@@ -138,7 +139,8 @@ class CourseRunViewSet(viewsets.GenericViewSet):
'min_effort': course_run.min_effort, 'min_effort': course_run.min_effort,
'max_effort': course_run.max_effort, 'max_effort': course_run.max_effort,
'language': course_run.language, 'language': course_run.language,
'weeks_to_complete': course_run.length,
'learner_testimonials': publisher_course.learner_testimonial,
} }
discovery_course_run, __ = DiscoveryCourseRun.objects.update_or_create( discovery_course_run, __ = DiscoveryCourseRun.objects.update_or_create(
course=discovery_course, course=discovery_course,
...@@ -146,6 +148,8 @@ class CourseRunViewSet(viewsets.GenericViewSet): ...@@ -146,6 +148,8 @@ class CourseRunViewSet(viewsets.GenericViewSet):
defaults=defaults defaults=defaults
) )
discovery_course_run.transcript_languages.add(*course_run.transcript_languages.all()) discovery_course_run.transcript_languages.add(*course_run.transcript_languages.all())
discovery_course_run.staff.add(*course_run.staff.all())
discovery_course_run.video_translation_languages.add(course_run.video_language)
if created: if created:
discovery_course.canonical_course_run = discovery_course_run discovery_course.canonical_course_run = discovery_course_run
......
...@@ -66,6 +66,11 @@ class CourseRunFactory(factory.DjangoModelFactory): ...@@ -66,6 +66,11 @@ class CourseRunFactory(factory.DjangoModelFactory):
full_description_override = FuzzyText() full_description_override = FuzzyText()
@factory.post_generation @factory.post_generation
def staff(self, create, extracted, **kwargs): # pylint: disable=unused-argument
if create:
add_m2m_data(self.staff, extracted)
@factory.post_generation
def transcript_languages(self, create, extracted, **kwargs): # pylint: disable=unused-argument def transcript_languages(self, create, extracted, **kwargs): # pylint: disable=unused-argument
if create: if create:
add_m2m_data(self.transcript_languages, extracted) add_m2m_data(self.transcript_languages, extracted)
......
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