def test_external_course_key_null_or_empty(self, external_key_to_test): course_run_1a = CourseRun.objects.get(key='course-run-id/course-1a/test') course_run_1a.external_key = external_key_to_test course_run_1a.save() # Same course test copy_course_run_1a = factories.CourseRunFactory( course=self.course_1, external_key=external_key_to_test, ) assert course_run_1a.external_key == copy_course_run_1a.external_key # Same curriculum test but different courses new_course_run = factories.CourseRunFactory( external_key=external_key_to_test ) new_course = new_course_run.course factories.CurriculumCourseMembershipFactory( course=new_course, curriculum=self.curriculum_1, ) assert course_run_1a.external_key == new_course_run.external_key # Same programs but different curriculum test _, curriculum_4 = self._create_single_course_curriculum(external_key_to_test, 'curriculum_4') curriculum_4.program = self.program_1 curriculum_4.save() curriculum_4.refresh_from_db()
def test_create_curriculum_course_membership__curriculum_only(self): course_run_1, curriculum_1 = self._create_single_course_curriculum( 'colliding-key', 'curriculum_1') course_run_2 = factories.CourseRunFactory(external_key='colliding-key') message = _duplicate_external_key_message([course_run_1]) with self.assertNumQueries(2): with self.assertRaisesRegex(ValidationError, escape(message)): factories.CurriculumCourseMembershipFactory( course=course_run_2.course, curriculum=curriculum_1, )
def test_create_curriculum_course_membership(self, curriculum_id): new_course_run = factories.CourseRunFactory( external_key='ext-key-course-1a' ) new_course = new_course_run.course course_run_1a = CourseRun.objects.get(key='course-run-id/course-1a/test') message = _duplicate_external_key_message([course_run_1a]) with self.assertNumQueries(2): with self.assertRaisesRegex(ValidationError, escape(message)): factories.CurriculumCourseMembershipFactory( course=new_course, curriculum=self.curriculums[curriculum_id], )
def _create_single_course_curriculum(external_key, curriculum_name,): course_run = factories.CourseRunFactory( external_key=external_key ) curriculum = factories.CurriculumFactory( name=curriculum_name, program=None, ) factories.CurriculumCourseMembershipFactory( course=course_run.course, curriculum=curriculum, ) return course_run, curriculum
def setUp(self): self.course_runs = factories.CourseRunFactory.create_batch(3) self.course = self.course_runs[0].course self.course_run = self.course_runs[0] self.program_type = ProgramType.objects.get(slug='masters') self.partner = factories.PartnerFactory() self.degree = factories.DegreeFactory(courses=[self.course], type=self.program_type, partner=self.partner) self.currency = Currency.objects.get(code='USD') self.curriculum = Curriculum.objects.create(program=self.degree, uuid=uuid.uuid4()) self.curriculum_course = factories.CurriculumCourseMembershipFactory( curriculum=self.curriculum, course=self.course)
def _add_courses_to_curriculum(curriculum, *courses): for course in courses: factories.CurriculumCourseMembershipFactory( course=course, curriculum=curriculum )