Commit 53e7b0a4 by Simon Chen

Mark the courseRun.save with signature from refresh_course_metadata LEARNER-1606

parent 8426ff80
...@@ -141,7 +141,7 @@ class CoursesApiDataLoader(AbstractDataLoader): ...@@ -141,7 +141,7 @@ class CoursesApiDataLoader(AbstractDataLoader):
def update_course_run(self, course_run, body): def update_course_run(self, course_run, body):
validated_data = self.format_course_run_data(body) validated_data = self.format_course_run_data(body)
self._update_instance(course_run, validated_data) self._update_instance(course_run, validated_data, suppress_publication=True)
logger.info('Processed course run with UUID [%s].', course_run.uuid) logger.info('Processed course run with UUID [%s].', course_run.uuid)
...@@ -181,10 +181,11 @@ class CoursesApiDataLoader(AbstractDataLoader): ...@@ -181,10 +181,11 @@ class CoursesApiDataLoader(AbstractDataLoader):
return course return course
def _update_instance(self, instance, validated_data): def _update_instance(self, instance, validated_data, **kwargs):
for attr, value in validated_data.items(): for attr, value in validated_data.items():
setattr(instance, attr, value) setattr(instance, attr, value)
instance.save()
instance.save(**kwargs)
def format_course_run_data(self, body, course=None): def format_course_run_data(self, body, course=None):
defaults = { defaults = {
......
...@@ -363,7 +363,7 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader): ...@@ -363,7 +363,7 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
def update_course_run(self, course_run, data): def update_course_run(self, course_run, data):
validated_data = self.format_course_run_data(data, course_run.course) validated_data = self.format_course_run_data(data, course_run.course)
self._update_instance(course_run, validated_data) self._update_instance(course_run, validated_data, suppress_publication=True)
self.set_course_run_staff(course_run, data) self.set_course_run_staff(course_run, data)
self.set_course_run_transcript_languages(course_run, data) self.set_course_run_transcript_languages(course_run, data)
...@@ -402,10 +402,10 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader): ...@@ -402,10 +402,10 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
return course return course
def _update_instance(self, instance, validated_data): def _update_instance(self, instance, validated_data, **kwargs):
for attr, value in validated_data.items(): for attr, value in validated_data.items():
setattr(instance, attr, value) setattr(instance, attr, value)
instance.save() instance.save(**kwargs)
def format_course_run_data(self, data, course): def format_course_run_data(self, data, course):
uuid = data['uuid'] uuid = data['uuid']
......
...@@ -602,9 +602,12 @@ class CourseRun(TimeStampedModel): ...@@ -602,9 +602,12 @@ class CourseRun(TimeStampedModel):
return '{key}: {title}'.format(key=self.key, title=self.title) return '{key}: {title}'.format(key=self.key, title=self.title)
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
suppress_publication = kwargs.pop('suppress_publication', False)
is_publishable = ( is_publishable = (
self.course.partner.has_marketing_site and self.course.partner.has_marketing_site and
waffle.switch_is_active('publish_course_runs_to_marketing_site') waffle.switch_is_active('publish_course_runs_to_marketing_site') and
# Pop to clean the kwargs for the base class save call below
not suppress_publication
) )
if is_publishable: if is_publishable:
......
...@@ -291,6 +291,12 @@ class CourseRunTests(TestCase): ...@@ -291,6 +291,12 @@ class CourseRunTests(TestCase):
assert mock_init.call_count == 0 assert mock_init.call_count == 0
toggle_switch('publish_course_runs_to_marketing_site') toggle_switch('publish_course_runs_to_marketing_site')
with mock.patch.object(CourseRunMarketingSitePublisher, '__init__') as mock_init:
# Make sure if the save comes from refresh_course_metadata, we don't actually publish
self.course_run.save(suppress_publication=True)
assert mock_init.call_count == 0
self.course_run.course.partner.marketing_site_url_root = '' self.course_run.course.partner.marketing_site_url_root = ''
self.course_run.course.partner.save() self.course_run.course.partner.save()
......
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