Esempio n. 1
0
    def test_backfill_all(self, argument_source, argument):
        course1_active_url_slug = self.course1.active_url_slug
        course2_active_url_slug = self.course2.active_url_slug

        if argument_source == 'database':
            config = BackfillCourseRunSlugsConfig.get_solo()
            config.all = True
            config.save()
        call_command('backfill_course_run_slugs_to_courses', argument)

        course1_url_slugs = [
            slug_obj.url_slug
            for slug_obj in self.course1.url_slug_history.all()
        ]
        course2_url_slugs = [
            slug_obj.url_slug
            for slug_obj in self.course2.url_slug_history.all()
        ]

        # make sure active url_slugs remain unchanged
        assert self.course1.active_url_slug == course1_active_url_slug
        assert self.course1PublishedRun.slug in course1_url_slugs
        assert self.course1UnpublishedRun.slug not in course1_url_slugs
        assert self.course2.active_url_slug == course2_active_url_slug
        assert self.course2PublishedRun.slug in course2_url_slugs
    def test_specific_uuids_take_priority_in_database_config(self):
        course1_active_url_slug = self.course1.active_url_slug
        course2_active_url_slug = self.course2.active_url_slug

        config = BackfillCourseRunSlugsConfig.get_solo()
        config.uuids = self.course1.uuid
        config.all = True
        config.save()
        call_command('backfill_course_run_slugs_to_courses', '--args-from-database')

        course1_url_slugs = [slug_obj.url_slug for slug_obj in self.course1.url_slug_history.all()]
        self.assertEqual(self.course1.active_url_slug, course1_active_url_slug)
        self.assertIn(self.course1PublishedRun.slug, course1_url_slugs)

        # check we didn't change anything for course2
        self.assertEqual(self.course2.active_url_slug, course2_active_url_slug)
        self.assertEqual(self.course2.url_slug_history.count(), 1)
    def test_backfill_specific_course(self, argument_source):
        course1_active_url_slug = self.course1.active_url_slug
        course2_active_url_slug = self.course2.active_url_slug
        if argument_source == 'database':
            config = BackfillCourseRunSlugsConfig.get_solo()
            config.uuids = self.course1.uuid
            config.save()
            call_command('backfill_course_run_slugs_to_courses', '--args-from-database')
        else:
            call_command('backfill_course_run_slugs_to_courses', '-uuids', self.course1.uuid)

        course1_url_slugs = [slug_obj.url_slug for slug_obj in self.course1.url_slug_history.all()]
        self.assertEqual(self.course1.active_url_slug, course1_active_url_slug)
        self.assertIn(self.course1PublishedRun.slug, course1_url_slugs)

        # check we didn't change anything for course2
        self.assertEqual(self.course2.active_url_slug, course2_active_url_slug)
        self.assertEqual(self.course2.url_slug_history.count(), 1)
Esempio n. 4
0
 def get_args_from_database(self):
     config = BackfillCourseRunSlugsConfig.get_solo()
     return {"all": config.all, "uuids": config.uuids.split()}