def test_possible_expression_dates_consolidation(self): self.work.publication_date = datetime.date(2017, 2, 23) consolidation = ArbitraryExpressionDate(work=self.work, date='2020-09-13', created_by_user_id=1) consolidation.save() amendment = Amendment(amended_work=self.work, amending_work_id=2, date='2018-12-05', created_by_user_id=1) amendment.save() dates = self.work.possible_expression_dates() self.assertEqual(dates, [ { 'date': datetime.date(2020, 9, 13), 'amendment': False, 'consolidation': True, 'initial': False }, { 'date': datetime.date(2018, 12, 5), 'amendment': True, 'consolidation': False, 'initial': False }, { 'date': datetime.date(2017, 2, 23), 'initial': True }, ])
def test_get_work_timeline(self): view = WorkViewBase() work = Work.objects.get(pk=1) work.assent_date = datetime.date(2014, 3, 20) amendment = Amendment(amended_work_id=1, amending_work_id=2, date='2019-01-01', created_by_user_id=1) amendment.save() consolidation = ArbitraryExpressionDate(work=work, date='2018-01-01', created_by_user_id=1) consolidation.save() timeline = WorkViewBase.get_work_timeline(view, work) # most recent event first self.assertEqual(timeline[0]['date'], datetime.date(2019, 1, 1)) self.assertEqual(timeline[0]['amendments'][0].date, datetime.date(2019, 1, 1)) self.assertEqual(timeline[0]['initial'], False) # consolidation self.assertEqual(timeline[1]['date'], datetime.date(2018, 1, 1)) self.assertEqual(timeline[1]['consolidations'][0].date, datetime.date(2018, 1, 1)) self.assertEqual(timeline[1]['initial'], False) # publication date on fixture self.assertEqual(timeline[2]['date'], datetime.date(2014, 4, 2)) self.assertEqual(timeline[2]['publication_date'], True) self.assertEqual(timeline[2]['initial'], True) # assent date (oldest) self.assertEqual(timeline[-1]['date'], datetime.date(2014, 3, 20)) self.assertEqual(timeline[-1]['assent_date'], True)