from rest_framework.test import APITestCase from vbv_lernwelt.core.create_default_users import create_default_users from vbv_lernwelt.course.creators.test_course import create_test_course from vbv_lernwelt.learnpath.models import Circle, LearningContentAttendanceCourse class CourseBasePageSaveTestCase(APITestCase): def setUp(self) -> None: create_default_users() create_test_course() def test_save_willRenameSlugsOfChildren(self): circle_fahrzeug = Circle.objects.get(title="Fahrzeug") self.assertEqual(circle_fahrzeug.slug, "test-lehrgang-lp-circle-fahrzeug") lc_attendance_course = LearningContentAttendanceCourse.objects.descendant_of( circle_fahrzeug ).first() self.assertEqual( lc_attendance_course.slug, "test-lehrgang-lp-circle-fahrzeug-lc-präsenzkurs-fahrzeug", ) # title update should also update the slugs of the descendants circle_fahrzeug.title = "Foobar" circle_fahrzeug.save() circle_fahrzeug = Circle.objects.get(id=circle_fahrzeug.id) self.assertEqual(circle_fahrzeug.slug, "test-lehrgang-lp-circle-foobar") lc_attendance_course = LearningContentAttendanceCourse.objects.descendant_of( circle_fahrzeug ).first() self.assertEqual( lc_attendance_course.slug, "test-lehrgang-lp-circle-foobar-lc-präsenzkurs-fahrzeug", )