Add unit test to test creation of slug while saving
This commit is contained in:
parent
cb37c55732
commit
a3e4a50ba0
|
|
@ -15,7 +15,8 @@ class AssignmentListPage(CourseBasePage):
|
||||||
|
|
||||||
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
||||||
self.slug = find_available_slug(
|
self.slug = find_available_slug(
|
||||||
slugify(f"{self.get_parent().slug}-assignment", allow_unicode=True)
|
slugify(f"{self.get_parent().slug}-assignment", allow_unicode=True),
|
||||||
|
ignore_page_id=self.id,
|
||||||
)
|
)
|
||||||
super(AssignmentListPage, self).save(clean, user, log_action, **kwargs)
|
super(AssignmentListPage, self).save(clean, user, log_action, **kwargs)
|
||||||
|
|
||||||
|
|
@ -130,6 +131,7 @@ class Assignment(CourseBasePage):
|
||||||
|
|
||||||
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
||||||
self.slug = find_available_slug(
|
self.slug = find_available_slug(
|
||||||
slugify(f"{self.get_parent().slug}-{self.title}", allow_unicode=True)
|
slugify(f"{self.get_parent().slug}-{self.title}", allow_unicode=True),
|
||||||
|
ignore_page_id=self.id,
|
||||||
)
|
)
|
||||||
super(Assignment, self).save(clean, user, log_action, **kwargs)
|
super(Assignment, self).save(clean, user, log_action, **kwargs)
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,8 @@ class CompetenceProfilePage(CourseBasePage):
|
||||||
|
|
||||||
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
||||||
self.slug = find_available_slug(
|
self.slug = find_available_slug(
|
||||||
slugify(f"{self.get_parent().slug}-competence", allow_unicode=True)
|
slugify(f"{self.get_parent().slug}-competence", allow_unicode=True),
|
||||||
|
ignore_page_id=self.id,
|
||||||
)
|
)
|
||||||
super(CompetenceProfilePage, self).save(clean, user, log_action, **kwargs)
|
super(CompetenceProfilePage, self).save(clean, user, log_action, **kwargs)
|
||||||
|
|
||||||
|
|
@ -59,7 +60,8 @@ class CompetencePage(CourseBasePage):
|
||||||
slugify(
|
slugify(
|
||||||
f"{self.get_parent().slug}-competence-{self.competence_id}",
|
f"{self.get_parent().slug}-competence-{self.competence_id}",
|
||||||
allow_unicode=True,
|
allow_unicode=True,
|
||||||
)
|
),
|
||||||
|
ignore_page_id=self.id,
|
||||||
)
|
)
|
||||||
super(CompetencePage, self).save(clean, user, log_action, **kwargs)
|
super(CompetencePage, self).save(clean, user, log_action, **kwargs)
|
||||||
|
|
||||||
|
|
@ -87,14 +89,16 @@ class PerformanceCriteria(CourseBasePage):
|
||||||
slugify(
|
slugify(
|
||||||
f"{profile_parent.slug}-crit-{self.competence_id}-{self.learning_unit.course_category.title}",
|
f"{profile_parent.slug}-crit-{self.competence_id}-{self.learning_unit.course_category.title}",
|
||||||
allow_unicode=True,
|
allow_unicode=True,
|
||||||
)
|
),
|
||||||
|
ignore_page_id=self.id,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self.slug = find_available_slug(
|
self.slug = find_available_slug(
|
||||||
slugify(
|
slugify(
|
||||||
f"{profile_parent.slug}-crit-{self.competence_id}",
|
f"{profile_parent.slug}-crit-{self.competence_id}",
|
||||||
allow_unicode=True,
|
allow_unicode=True,
|
||||||
)
|
),
|
||||||
|
ignore_page_id=self.id,
|
||||||
)
|
)
|
||||||
super(PerformanceCriteria, self).save(clean, user, log_action, **kwargs)
|
super(PerformanceCriteria, self).save(clean, user, log_action, **kwargs)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,9 @@ class CoursePage(CourseBasePage):
|
||||||
verbose_name = _("Lehrgang-Seite")
|
verbose_name = _("Lehrgang-Seite")
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
self.slug = find_available_slug(slugify(self.title, allow_unicode=True))
|
self.slug = find_available_slug(
|
||||||
|
slugify(self.title, allow_unicode=True), ignore_page_id=self.id
|
||||||
|
)
|
||||||
super(CoursePage, self).save(*args, **kwargs)
|
super(CoursePage, self).save(*args, **kwargs)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,8 @@ class LearningPath(CourseBasePage):
|
||||||
|
|
||||||
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
||||||
self.slug = find_available_slug(
|
self.slug = find_available_slug(
|
||||||
slugify(f"{self.get_parent().slug}-lp", allow_unicode=True)
|
slugify(f"{self.get_parent().slug}-lp", allow_unicode=True),
|
||||||
|
ignore_page_id=self.id,
|
||||||
)
|
)
|
||||||
super(LearningPath, self).save(clean, user, log_action, **kwargs)
|
super(LearningPath, self).save(clean, user, log_action, **kwargs)
|
||||||
|
|
||||||
|
|
@ -307,5 +308,6 @@ def find_slug_with_parent_prefix(page, type_prefix, slug_postfix=None):
|
||||||
slug_postfix = page.title
|
slug_postfix = page.title
|
||||||
|
|
||||||
return find_available_slug(
|
return find_available_slug(
|
||||||
slugify(f"{slug_prefix}-{slug_postfix}", allow_unicode=True)
|
slugify(f"{slug_prefix}-{slug_postfix}", allow_unicode=True),
|
||||||
|
ignore_page_id=page.id,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
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 LearningContent
|
||||||
|
|
||||||
|
|
||||||
|
class SaveSlugTestCase(TestCase):
|
||||||
|
def setUp(self) -> None:
|
||||||
|
create_default_users()
|
||||||
|
create_test_course()
|
||||||
|
|
||||||
|
def test_save_willHandleSlug(self):
|
||||||
|
lc_fachcheck = LearningContent.objects.get(title="Fachcheck Fahrzeug")
|
||||||
|
self.assertEqual(
|
||||||
|
lc_fachcheck.slug, "test-lehrgang-lp-circle-analyse-lc-fachcheck-fahrzeug"
|
||||||
|
)
|
||||||
|
|
||||||
|
# only changing minutes should not change slug
|
||||||
|
lc_fachcheck.minutes = 135
|
||||||
|
lc_fachcheck.save()
|
||||||
|
lc_fachcheck = LearningContent.objects.get(id=lc_fachcheck.id)
|
||||||
|
self.assertEqual(
|
||||||
|
lc_fachcheck.slug, "test-lehrgang-lp-circle-analyse-lc-fachcheck-fahrzeug"
|
||||||
|
)
|
||||||
|
|
||||||
|
# changing title should change slug
|
||||||
|
lc_fachcheck.title = "Fachcheck Foobar"
|
||||||
|
lc_fachcheck.save()
|
||||||
|
lc_fachcheck = LearningContent.objects.get(id=lc_fachcheck.id)
|
||||||
|
self.assertEqual(
|
||||||
|
lc_fachcheck.slug, "test-lehrgang-lp-circle-analyse-lc-fachcheck-foobar"
|
||||||
|
)
|
||||||
|
|
@ -25,7 +25,8 @@ class MediaLibraryPage(CourseBasePage):
|
||||||
|
|
||||||
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
||||||
self.slug = find_available_slug(
|
self.slug = find_available_slug(
|
||||||
slugify(f"{self.get_parent().slug}-media", allow_unicode=True)
|
slugify(f"{self.get_parent().slug}-media", allow_unicode=True),
|
||||||
|
ignore_page_id=self.id,
|
||||||
)
|
)
|
||||||
super(MediaLibraryPage, self).save(clean, user, log_action, **kwargs)
|
super(MediaLibraryPage, self).save(clean, user, log_action, **kwargs)
|
||||||
|
|
||||||
|
|
@ -86,7 +87,8 @@ class MediaCategoryPage(CourseBasePage):
|
||||||
|
|
||||||
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
def save(self, clean=True, user=None, log_action=False, **kwargs):
|
||||||
self.slug = find_available_slug(
|
self.slug = find_available_slug(
|
||||||
slugify(f"{self.get_parent().slug}-cat-{self.title}", allow_unicode=True)
|
slugify(f"{self.get_parent().slug}-cat-{self.title}", allow_unicode=True),
|
||||||
|
ignore_page_id=self.id,
|
||||||
)
|
)
|
||||||
super(MediaCategoryPage, self).save(clean, user, log_action, **kwargs)
|
super(MediaCategoryPage, self).save(clean, user, log_action, **kwargs)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue