from books.factories import ModuleFactory, ChapterFactory from books.models import ContentBlock, Chapter, ModulePageForm from core.tests.base_test import SkillboxTestCase from django.test.client import Client from users.models import User class TestChapterCreation(SkillboxTestCase): """ Test created for Issue MS-932 """ def setUp(self) -> None: self.createDefault() self.module = ModuleFactory(slug="my-module") user = User.objects.get(username='admin') self.Client = Client() self.client.login(username='admin', password='test') def test_create_chapter_creates_slug_autmatically(self): new_chapter = Chapter(title='New Chapter') self.module.add_child(instance=new_chapter) new_chapter.save() self.assertEqual('new-chapter', new_chapter.slug) def test_create_chapter_creates_slug_autmatically_if_existing(self): new_chapter = Chapter(title='New Chapter') self.module.add_child(instance=new_chapter) new_chapter.save() self.assertEqual('new-chapter', new_chapter.slug) new_chapter2 = Chapter(title='New Chapter') self.module.add_child(instance=new_chapter2) new_chapter2.save() self.assertEqual('new-chapter-2', new_chapter2.slug) def test_add_chapter_in_admin(self): data = { 'title': 'New Chapter', 'slug': 'new-chapter-test', 'module': self.module.id } response = self.client.post(f"/cms/pages/add/books/chapter/{self.module.id}", data=data) self.assertEqual(200, response.status_code) chapter = Chapter.objects.get(title='New Chapter') self.assertEqual("new-chapter-test", chapter.slug) def test_add_chapter_in_admin_no_slug(self): data = { 'title': 'New Chapter', 'module': self.module.id } response = self.client.post(f"/cms/pages/add/books/chapter/{self.module.id}", data=data) self.assertEqual(200, response.status_code) chapter = Chapter.objects.get(title='New Chapter') self.assertEqual("new-chapter", chapter.slug)