def test_back_dating_update_with_earlier_days(self, sau_stub): """For RT-489, specifically""" # Arrange StrategicActionUpdateFactory.create( user=sau_stub["user"], strategic_action=sau_stub["sa"], supply_chain=sau_stub["sc"], status=Staus.SUBMITTED, implementation_rag_rating=RAGRating.GREEN, reason_for_delays="some text", date_created=date.today().replace(day=10) - relativedelta(months=3), submission_date=date.today().replace(day=10) - relativedelta(months=3), ) # Act sau = StrategicActionUpdateFactory.build( user=sau_stub["user"], strategic_action=sau_stub["sa"], supply_chain=sau_stub["sc"], status=Staus.SUBMITTED, implementation_rag_rating=RAGRating.GREEN, reason_for_delays="some text", date_created=date.today().replace(day=20) - relativedelta(months=3), submission_date=date.today().replace(day=20) - relativedelta(months=3), ) # Assert self.validate(sau, {ObjectLevelError: ""}, objects_saved=1) assert (StrategicActionUpdate.objects.given_month(date.today().replace( day=20) - relativedelta(months=3)).count() == 1)
def test_since_with_filter(self): # Arrange sc = SupplyChainFactory.create(name="Supply Chain 1") sa = StrategicActionFactory.create(name="SA 01", supply_chain=sc) sau = StrategicActionUpdateFactory.create( status=StrategicActionUpdate.Status.IN_PROGRESS, supply_chain=sc, strategic_action=sa, ) # Act sau_prog = StrategicActionUpdate.objects.since( deadline=date.today() - timedelta(days=1), supply_chain=sc, status=StrategicActionUpdate.Status.IN_PROGRESS, ) sau_comp = StrategicActionUpdate.objects.since( deadline=date.today() - timedelta(days=1), supply_chain=sc, status=StrategicActionUpdate.Status.READY_TO_SUBMIT, ) # Assert assert sau_prog[0] == sau assert sau_comp.count() == 0
def test_back_dating_fail(self, sau_stub): # Arrange sau1 = StrategicActionUpdateFactory.create( user=sau_stub["user"], strategic_action=sau_stub["sa"], supply_chain=sau_stub["sc"], status=Staus.SUBMITTED, implementation_rag_rating=RAGRating.GREEN, reason_for_delays="some text", date_created=date.today().replace(day=20) - relativedelta(months=3), submission_date=date.today().replace(day=20) - relativedelta(months=3), ) # Act new = StrategicActionUpdateFactory.build( user=sau_stub["user"], strategic_action=sau_stub["sa"], supply_chain=sau_stub["sc"], status=Staus.IN_PROGRESS, date_created=date.today().replace(day=20) - relativedelta(months=3), ) # Assert self.validate(new, {ObjectLevelError: ""}, objects_saved=1) assert (StrategicActionUpdate.objects.given_month(date.today().replace( day=20) - relativedelta(months=3)).count() == 1)
def test_back_dating_update_in_gap(self, sau_stub): # Arrange StrategicActionUpdateFactory.create( user=sau_stub["user"], strategic_action=sau_stub["sa"], supply_chain=sau_stub["sc"], status=Staus.SUBMITTED, implementation_rag_rating=RAGRating.GREEN, reason_for_delays="some text", date_created=date.today().replace(day=20) - relativedelta(months=4), submission_date=date.today().replace(day=20) - relativedelta(months=4), ) StrategicActionUpdateFactory.create( user=sau_stub["user"], strategic_action=sau_stub["sa"], supply_chain=sau_stub["sc"], status=Staus.SUBMITTED, implementation_rag_rating=RAGRating.GREEN, reason_for_delays="some text", date_created=date.today().replace(day=20) - relativedelta(months=2), submission_date=date.today().replace(day=20) - relativedelta(months=2), ) # Act sau = StrategicActionUpdateFactory.build( user=sau_stub["user"], strategic_action=sau_stub["sa"], supply_chain=sau_stub["sc"], status=Staus.SUBMITTED, implementation_rag_rating=RAGRating.GREEN, reason_for_delays="some text", date_created=date.today().replace(day=20) - relativedelta(months=3), submission_date=date.today().replace(day=20) - relativedelta(months=3), ) # Assert self.validate(sau, {}, objects_saved=3) assert (StrategicActionUpdate.objects.given_month(date.today().replace( day=20) - relativedelta(months=3)).count() == 1)
def test_back_dating_change_state(self, sau_stub): # Arrange StrategicActionUpdateFactory.create( user=sau_stub["user"], strategic_action=sau_stub["sa"], supply_chain=sau_stub["sc"], status=Staus.IN_PROGRESS, implementation_rag_rating=RAGRating.GREEN, date_created=date.today().replace(day=20) - relativedelta(months=3), ) StrategicActionUpdateFactory.create_batch(10) # Act sau = StrategicActionUpdate.objects.get( strategic_action=sau_stub["sa"]) sau.status = Staus.SUBMITTED sau.submission_date = date.today().replace(day=20) - relativedelta( months=3) sau.save() # Assert assert (StrategicActionUpdate.objects.given_month(date.today().replace( day=20) - relativedelta(months=3)).count() == 1)