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):
def update_course_run(self, course_run, 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)
......@@ -181,10 +181,11 @@ class CoursesApiDataLoader(AbstractDataLoader):
return course
def _update_instance(self, instance, validated_data):
def _update_instance(self, instance, validated_data, **kwargs):
for attr, value in validated_data.items():
setattr(instance, attr, value)
instance.save()
instance.save(**kwargs)
def format_course_run_data(self, body, course=None):
defaults = {
......
......@@ -363,7 +363,7 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
def update_course_run(self, course_run, data):
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_transcript_languages(course_run, data)
......@@ -402,10 +402,10 @@ class CourseMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
return course
def _update_instance(self, instance, validated_data):
def _update_instance(self, instance, validated_data, **kwargs):
for attr, value in validated_data.items():
setattr(instance, attr, value)
instance.save()
instance.save(**kwargs)
def format_course_run_data(self, data, course):
uuid = data['uuid']
......
......@@ -602,9 +602,12 @@ class CourseRun(TimeStampedModel):
return '{key}: {title}'.format(key=self.key, title=self.title)
def save(self, *args, **kwargs):
suppress_publication = kwargs.pop('suppress_publication', False)
is_publishable = (
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:
......
......@@ -291,6 +291,12 @@ class CourseRunTests(TestCase):
assert mock_init.call_count == 0
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.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