def test_populate_official_with_existing_draft(self): course_run = CourseRunFactory(draft=True, course=CourseFactory(draft=True)) course_run.status = CourseRunStatus.Reviewed course_run.save() salesforce_id = 'SomeSalesforceId' course_run_2 = CourseRunFactory(draft=True, course=CourseFactory( draft=True, salesforce_id=salesforce_id), salesforce_id=salesforce_id) course_run_2.status = CourseRunStatus.Reviewed course_run_2.save() # Need to modify state of the instance passed in def new_create_instance(instance): instance.salesforce_id = salesforce_id instance.save() with mock.patch( 'course_discovery.apps.course_metadata.tests.test_salesforce.CourseRun.save' ): with mock.patch( 'course_discovery.apps.course_metadata.tests.test_salesforce.Course.save' ): with mock.patch( self.salesforce_util_path) as mock_salesforce_util: with mock.patch(self.salesforce_util_path + '.create_course_run', new=new_create_instance): with mock.patch(self.salesforce_util_path + '.create_course', new=new_create_instance): created = populate_official_with_existing_draft( course_run.official_version, mock_salesforce_util) assert created assert course_run.official_version.salesforce_id == salesforce_id created = populate_official_with_existing_draft( course_run.official_version.course, mock_salesforce_util) assert created assert course_run.official_version.course.salesforce_id == salesforce_id created = populate_official_with_existing_draft( course_run_2.official_version, mock_salesforce_util) assert not created assert course_run_2.official_version.salesforce_id == salesforce_id created = populate_official_with_existing_draft( course_run_2.official_version.course, mock_salesforce_util) assert not created assert course_run_2.official_version.course.salesforce_id == salesforce_id
def test_marketable_unpublished_exclusions(self, is_published): """ Verify the method excludes CourseRuns with Unpublished status. """ course_run = CourseRunFactory(status=CourseRunStatus.Unpublished) SeatFactory(course_run=course_run) if is_published: course_run.status = CourseRunStatus.Published course_run.save() assert CourseRun.objects.marketable().exists() == is_published