def test_data_warehouse_is_not_top_priority_barrier(self): tag_title = "Very Important Thing" tag = BarrierTagFactory(title=tag_title, is_top_priority_tag=False) barrier = BarrierFactory(tags=(tag, ), status_date=date.today()) serialised_data = DataWorkspaceSerializer(barrier).data assert ("is_top_priority" in serialised_data.keys() and serialised_data["is_top_priority"] is False)
def test_latest_progress_update_status_in_data(self): progress_update = BarrierProgressUpdate.objects.create( barrier=self.barrier, status=PROGRESS_UPDATE_CHOICES.ON_TRACK, created_by=self.user, ) self.barrier.progress_updates.add(progress_update) serialised_data = DataWorkspaceSerializer(self.barrier).data assert "status" in serialised_data["latest_progress_update"]
def test_latest_progress_update_status_delayed_is_readable(self): progress_update = BarrierProgressUpdate.objects.create( barrier=self.barrier, status=PROGRESS_UPDATE_CHOICES.DELAYED, created_by=self.user, ) self.barrier.progress_updates.add(progress_update) serialised_data = DataWorkspaceSerializer(self.barrier).data assert ("status" in serialised_data["latest_progress_update"] and serialised_data["latest_progress_update"]["status"] == PROGRESS_UPDATE_CHOICES["DELAYED"])
def test_user_fields_are_serialised(self): progress_update = BarrierProgressUpdate.objects.create( barrier=self.barrier, status=PROGRESS_UPDATE_CHOICES.ON_TRACK, created_by=self.user, created_on=datetime.datetime.now(), modified_by=self.user, modified_on=datetime.datetime.now(), archived_by=self.user, archived_on=datetime.datetime.now(), unarchived_by=self.user, unarchived_on=datetime.datetime.now(), ) self.barrier.progress_updates.add(progress_update) serialised_data = DataWorkspaceSerializer(self.barrier).data latest_progress_update = serialised_data["latest_progress_update"] assert not isinstance(latest_progress_update["created_by"], django.db.models.Model) assert not isinstance(latest_progress_update["modified_by"], django.db.models.Model) assert not isinstance(latest_progress_update["archived_by"], django.db.models.Model) assert not isinstance(latest_progress_update["unarchived_by"], django.db.models.Model)
def test_datawarehouse_action_plans_values(self): owner = create_test_user() barrier = BarrierFactory(status_date=date.today()) ActionPlan.objects.filter(barrier=barrier).update( barrier=barrier, owner=owner, current_status="Progress update here", current_status_last_updated=date(2021, 8, 1), strategic_context="Strategic context text", strategic_context_last_updated=date(2021, 7, 1), ) action_plan = barrier.action_plan barrier.refresh_from_db() data_with_empty_action_plan = DataWorkspaceSerializer(barrier).data assert data_with_empty_action_plan["action_plan_added"] is False assert (data_with_empty_action_plan["action_plan"]["progress_update"] == "Progress update here") assert (data_with_empty_action_plan["action_plan"] ["progress_update_updated_on"] == "2021-08-01") assert (data_with_empty_action_plan["action_plan"]["strategic_context"] == "Strategic context text") assert (data_with_empty_action_plan["action_plan"] ["strategic_context_updated_on"] == "2021-07-01") milestone1 = ActionPlanMilestoneFactory(action_plan=action_plan) milestone2 = ActionPlanMilestoneFactory(action_plan=action_plan) task1 = ActionPlanTaskFactory( milestone=milestone1, action_type="SCOPING_AND_RESEARCH", action_type_category="Dialogue", status="IN_PROGRESS", ) task2 = ActionPlanTaskFactory( milestone=milestone1, action_type="LOBBYING", action_type_category="Lobbying by officials", status="IN_PROGRESS", ) task3 = ActionPlanTaskFactory( milestone=milestone2, action_type="BILATERAL_ENGAGEMENT", action_type_category="Creating and maintaining trade agreements", status="IN_PROGRESS", ) task4 = ActionPlanTaskFactory( milestone=milestone2, action_type="WHITEHALL_FUNDING_STREAMS", action_type_category="Prosperity fund", status="IN_PROGRESS", ) data_with_action_plan = DataWorkspaceSerializer(barrier).data assert data_with_action_plan["action_plan_added"] is True assert (data_with_action_plan["action_plan"] ["action_plan_percent_complete"] == "0.0%") assert data_with_action_plan["action_plan"][ "action_plan_owner"] == owner.email assert data_with_action_plan["action_plan"][ "all_intervention_types"] == ( "Dialogue - Scoping/Research,Lobbying by " "officials - Lobbying,Creating and maintaining " "trade agreements - Bilateral " "engagement,Prosperity fund - Whitehall funding " "streams") assert data_with_action_plan["action_plan"][ "number_of_objectives"] == 2 assert (data_with_action_plan["action_plan"] ["number_of_objectives_complete"] == 0) assert data_with_action_plan["action_plan"][ "number_of_interventions"] == 4 assert (data_with_action_plan["action_plan"] ["number_of_interventions_complete"] == 0) task4.status = "COMPLETED" task4.save() data_with_action_plan = DataWorkspaceSerializer(barrier).data assert data_with_action_plan["action_plan"][ "number_of_objectives"] == 2 assert (data_with_action_plan["action_plan"] ["number_of_objectives_complete"] == 0) assert data_with_action_plan["action_plan"][ "number_of_interventions"] == 4 assert (data_with_action_plan["action_plan"] ["number_of_interventions_complete"] == 1) assert (data_with_action_plan["action_plan"] ["action_plan_percent_complete"] == "25.0%") task3.status = "COMPLETED" task3.save() data_with_action_plan = DataWorkspaceSerializer(barrier).data assert data_with_action_plan["action_plan"][ "number_of_objectives"] == 2 assert (data_with_action_plan["action_plan"] ["number_of_objectives_complete"] == 1) assert data_with_action_plan["action_plan"][ "number_of_interventions"] == 4 assert (data_with_action_plan["action_plan"] ["number_of_interventions_complete"] == 2) assert (data_with_action_plan["action_plan"] ["action_plan_percent_complete"] == "50.0%") task1.status = "COMPLETED" task1.save() task2.status = "COMPLETED" task2.save() data_with_action_plan = DataWorkspaceSerializer(barrier).data assert data_with_action_plan["action_plan"][ "number_of_objectives"] == 2 assert (data_with_action_plan["action_plan"] ["number_of_objectives_complete"] == 2) assert data_with_action_plan["action_plan"][ "number_of_interventions"] == 4 assert (data_with_action_plan["action_plan"] ["number_of_interventions_complete"] == 4) assert (data_with_action_plan["action_plan"] ["action_plan_percent_complete"] == "100.0%")
def test_latest_progress_update_status_is_null_when_no_progress_updates( self): serialised_data = DataWorkspaceSerializer(self.barrier).data assert ("latest_progress_update" in serialised_data and serialised_data["latest_progress_update"] is None)
def test_value_for_is_top_priority_is_bool(self): barrier = BarrierFactory(status_date=date.today()) serialised_data = DataWorkspaceSerializer(barrier).data assert "is_top_priority" in serialised_data.keys() and isinstance( serialised_data["is_top_priority"], bool)
def test_has_value_for_is_top_priority(self): barrier = BarrierFactory(status_date=date.today()) serialised_data = DataWorkspaceSerializer(barrier).data assert "is_top_priority" in serialised_data.keys()