class ProposalTestCase(TestCase): document = None proposal1 = None proposal2 = None def _lines_to_document_content(self, lines): return '\n<br />\n'.join(lines) + '\n' def setUp(self): # set up document document_content_raw = """ Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 Line 11 Line 12 Line 13 """ document_content_lines = [ l.strip() for l in document_content_raw.split('\n') if l.strip() ] document_content = self._lines_to_document_content( document_content_lines) self.document = FullDocument( title="Test-document", content=document_content, ) self.document.save() # set up proposal 1 new_document_content_lines = copy(document_content_lines) new_document_content_lines[8] = 'ABCD' diff1 = Diff.generateDiff( document_content, self._lines_to_document_content(new_document_content_lines)) diff1.fulldocument = self.document diff1.save() self.proposal1 = AmendmentProposal( title='testtitle', motivation='Test-motivation', diff=diff1, creator=None, ) self.proposal1.save() self.proposal1.build_history(editing_user=None) # set up proposal 2 new_document_content_lines = copy(document_content_lines) new_document_content_lines.pop(11) new_document_content_lines[1] = "DEFG" diff2 = Diff.generateDiff( document_content, self._lines_to_document_content(new_document_content_lines)) diff2.fulldocument = self.document diff2.save() self.proposal2 = AmendmentProposal( title='TESTTITLE', motivation='Test-motivation for proposal 2', diff=diff2, creator=None, ) self.proposal2.save() self.proposal2.build_history(editing_user=None) def testProposalSlug(self): """ Test Proposal's AutoSlugField """ self.assertEqual(self.proposal1.slug, 'testtitle') self.assertEqual(self.proposal2.slug, 'testtitle-2') def testAmendmentExecute(self): """ Test AmendmentProposal.execute() """ ### perform execute ### self.proposal1.execute() ### run tests ### ## test number of objects self.assertEqual(AmendmentProposal.objects.count(), 2) self.assertEqual(AmendmentProposal.all_objects.count(), 5) self.assertEqual(VotablePostHistory.objects.count(), 3) ## get last objects last_amendment = AmendmentProposal.all_objects.all().order_by( '-create_date')[0] last_history = VotablePostHistory.objects.all().order_by('-date')[0] new_proposal2 = AmendmentProposal.objects.get(pk=self.proposal2.pk) ## test last_amendment, should be hisotical_record copy of proposal2 self.assertEqual(last_amendment.is_historical_record, True) self.assertEqual(last_amendment.enabled, False) self.assertEqual(last_amendment.title, "TESTTITLE") self.assertEqual(last_amendment.diff.pk, new_proposal2.diff.pk) ## test last_history, shoud be history for proposal2 self.assertEqual(last_history.editing_user, None) self.assertEqual(last_history.editing_amendment.pk, self.proposal1.pk) self.assertEqual(last_history.post.pk, new_proposal2.pk) self.assertEqual(last_history.post_at_date.pk, last_amendment.pk) ## test new state of proposal1 # update proposal self.proposal1 = AmendmentProposal.objects.get(pk=self.proposal1.pk) # TODO ## test new state of proposal2 # update proposal self.proposal2 = AmendmentProposal.objects.get(pk=self.proposal2.pk)
class ProposalTestCase(TestCase): document = None proposal1 = None proposal2 = None def _lines_to_document_content(self, lines): return'\n<br />\n'.join(lines)+'\n' def setUp(self): # set up document document_content_raw = """ Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 Line 11 Line 12 Line 13 """ document_content_lines = [l.strip() for l in document_content_raw.split('\n') if l.strip()] document_content = self._lines_to_document_content(document_content_lines) self.document = FullDocument( title = "Test-document", content = document_content, ) self.document.save() # set up proposal 1 new_document_content_lines = copy(document_content_lines) new_document_content_lines[8] = 'ABCD' diff1 = Diff.generateDiff(document_content, self._lines_to_document_content(new_document_content_lines)) diff1.fulldocument = self.document diff1.save() self.proposal1 = AmendmentProposal( title = 'testtitle', motivation = 'Test-motivation', diff = diff1, creator = None, ) self.proposal1.save() self.proposal1.build_history(editing_user=None) # set up proposal 2 new_document_content_lines = copy(document_content_lines) new_document_content_lines.pop(11) new_document_content_lines[1] = "DEFG" diff2 = Diff.generateDiff(document_content, self._lines_to_document_content(new_document_content_lines)) diff2.fulldocument = self.document diff2.save() self.proposal2 = AmendmentProposal( title = 'TESTTITLE', motivation = 'Test-motivation for proposal 2', diff = diff2, creator = None, ) self.proposal2.save() self.proposal2.build_history(editing_user=None) def testProposalSlug(self): """ Test Proposal's AutoSlugField """ self.assertEqual(self.proposal1.slug, 'testtitle') self.assertEqual(self.proposal2.slug, 'testtitle-2') def testAmendmentExecute(self): """ Test AmendmentProposal.execute() """ ### perform execute ### self.proposal1.execute() ### run tests ### ## test number of objects self.assertEqual(AmendmentProposal.objects.count(), 2) self.assertEqual(AmendmentProposal.all_objects.count(), 5) self.assertEqual(VotablePostHistory.objects.count(), 3) ## get last objects last_amendment = AmendmentProposal.all_objects.all().order_by('-create_date')[0] last_history = VotablePostHistory.objects.all().order_by('-date')[0] new_proposal2 = AmendmentProposal.objects.get(pk=self.proposal2.pk) ## test last_amendment, should be hisotical_record copy of proposal2 self.assertEqual(last_amendment.is_historical_record, True) self.assertEqual(last_amendment.enabled, False) self.assertEqual(last_amendment.title, "TESTTITLE") self.assertEqual(last_amendment.diff.pk, new_proposal2.diff.pk) ## test last_history, shoud be history for proposal2 self.assertEqual(last_history.editing_user, None) self.assertEqual(last_history.editing_amendment.pk, self.proposal1.pk) self.assertEqual(last_history.post.pk, new_proposal2.pk) self.assertEqual(last_history.post_at_date.pk, last_amendment.pk) ## test new state of proposal1 # update proposal self.proposal1 = AmendmentProposal.objects.get(pk=self.proposal1.pk) # TODO ## test new state of proposal2 # update proposal self.proposal2 = AmendmentProposal.objects.get(pk=self.proposal2.pk)