def test_error_models(self): 'check creation and copying of error models' concept = Concept.new_concept('big', 'idea', self.unit, self.user) emUL1 = views.create_error_ul( Lesson(title='oops', addedBy=self.user, text='foo'), concept, self.unit, None) emUL2 = views.create_error_ul( Lesson(title='oops', addedBy=self.user, text='foo'), concept, self.unit, None) parent = UnitLesson.objects.get(lesson__concept=concept) ulList = concept.copy_error_models(parent) self.assertEqual(len(ulList), 2) lessons = [ul.lesson for ul in ulList] self.assertIn(emUL1.lesson, lessons) self.assertIn(emUL2.lesson, lessons) self.assertEqual(parent, ulList[0].parent) self.assertEqual(parent, ulList[1].parent) # test copying parent to a new unit unit3 = Unit(title='Another Courselet', addedBy=self.user) unit3.save() ul3 = parent.copy(unit3, self.user) self.assertEqual(ul3.unit, unit3) children = list(ul3.get_errors()) self.assertEqual(len(children), 2) lessons = [ul.lesson for ul in children] self.assertIn(emUL1.lesson, lessons) self.assertIn(emUL2.lesson, lessons)
def test_error_models(self): 'check creation and copying of error models' concept = Concept.new_concept('big', 'idea', self.unit, self.user) emUL1 = views.create_error_ul(Lesson(title='oops', addedBy=self.user, text='foo'), concept, self.unit, None) emUL2 = views.create_error_ul(Lesson(title='oops', addedBy=self.user, text='foo'), concept, self.unit, None) parent = UnitLesson.objects.get(lesson__concept=concept) ulList = concept.copy_error_models(parent) self.assertEqual(len(ulList), 2) lessons = [ul.lesson for ul in ulList] self.assertIn(emUL1.lesson, lessons) self.assertIn(emUL2.lesson, lessons) self.assertEqual(parent, ulList[0].parent) self.assertEqual(parent, ulList[1].parent) # test copying parent to a new unit unit3 = Unit(title='Another Courselet', addedBy=self.user) unit3.save() ul3 = parent.copy(unit3, self.user) self.assertEqual(ul3.unit, unit3) children = list(ul3.get_errors()) self.assertEqual(len(children), 2) lessons = [ul.lesson for ul in children] self.assertIn(emUL1.lesson, lessons) self.assertIn(emUL2.lesson, lessons)
def test_error_models(self): 'check creation and copying of error models' concept = Concept.new_concept('big', 'idea', self.unit, self.user) lesson = Lesson(title='a test', text='a word', addedBy=self.user) lesson.save_root(concept) ul = UnitLesson.create_from_lesson(lesson, self.unit) emUL1 = views.create_error_ul( Lesson(title='oops', addedBy=self.user, text='foo'), concept, self.unit, ul ) emUL2 = views.create_error_ul( Lesson(title='oops', addedBy=self.user, text='foo'), concept, self.unit, ul ) parent = UnitLesson.objects.get(lesson__concept=concept) ulList = concept.copy_error_models(parent) self.assertEqual(len(ulList), 2) lessons = [ul.lesson for ul in ulList] self.assertIn(emUL1.lesson, lessons) self.assertIn(emUL2.lesson, lessons) self.assertEqual(parent, ulList[0].parent) self.assertEqual(parent, ulList[1].parent) # test copying parent to a new unit unit3 = Unit(title='Another Courselet', addedBy=self.user) unit3.save() ul3 = parent.copy(unit3, self.user) self.assertEqual(ul3.unit, unit3) children = list(ul3.get_errors()) self.assertEqual(len(children), 2) lessons = [ul.lesson for ul in children] self.assertIn(emUL1.lesson, lessons) self.assertIn(emUL2.lesson, lessons) # test adding resolution reso = Lesson(title='A resolution', text='now I get it', addedBy=self.user) resoUL = ul.save_resolution(reso) em, resols = ul.get_em_resolutions() resols = list(resols) self.assertEqual(resols, [resoUL]) # test linking a lesson as resolution other = Lesson(title='A lesson', text='something else', addedBy=self.user) other.save_root() otherUL = UnitLesson.create_from_lesson(other, self.unit) resoUL2 = ul.copy_resolution(otherUL, self.user) em, resols = ul.get_em_resolutions() resols = list(resols) self.assertEqual(resols, [resoUL, resoUL2]) # check that it prevents adding duplicate resolutions resoUL3 = ul.copy_resolution(otherUL, self.user) self.assertEqual(resoUL2, resoUL3) em, resols = ul.get_em_resolutions() resols = list(resols) self.assertEqual(resols, [resoUL, resoUL2])