class TestWithCompletionDateMonthlyUpdateNavigationItems: def setup_method(self): self.supply_chain = SupplyChainFactory() self.strategic_action = StrategicActionFactory( supply_chain=self.supply_chain) self.strategic_action_update = StrategicActionUpdateFactory( strategic_action=self.strategic_action, supply_chain=self.strategic_action.supply_chain, ) def test_info_view_has_info_status_summary_links_if_completion_date_unchanged( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-info-edit", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "is_current_page" in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "RevisedTiming" not in navigation_links assert "Summary" in navigation_links def test_info_view_has_info_status_revisedtiming_summary_links_if_completion_date_changed( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-info-edit", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) self.strategic_action_update.changed_value_for_target_completion_date = date( year=2021, month=12, day=25) self.strategic_action_update.save() response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "is_current_page" in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "RevisedTiming" in navigation_links assert "Summary" in navigation_links def test_info_view_has_info_status_revisedtiming_summary_links_if_is_ongoing_changed( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-info-edit", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) self.strategic_action_update.changed_value_for_is_ongoing = True self.strategic_action_update.save() response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "is_current_page" in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "RevisedTiming" in navigation_links assert "Summary" in navigation_links def test_status_view_has_info_status_summary_links_if_completion_date_unchanged( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-status-edit", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "not_a_link" not in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "is_current_page" in navigation_links["Status"] assert "RevisedTiming" not in navigation_links assert "Summary" in navigation_links def test_status_view_has_info_status_revisedtiming_summary_links_if_completion_date_changed( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-status-edit", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) self.strategic_action_update.changed_value_for_target_completion_date = date( year=2021, month=12, day=25) self.strategic_action_update.save() response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "not_a_link" not in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "is_current_page" in navigation_links["Status"] assert "RevisedTiming" in navigation_links assert "Summary" in navigation_links def test_status_view_has_info_status_revisedtiming_summary_links_if_is_ongoing_changed( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-status-edit", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) self.strategic_action_update.changed_value_for_is_ongoing = True self.strategic_action_update.save() response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "not_a_link" not in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "is_current_page" in navigation_links["Status"] assert "RevisedTiming" in navigation_links assert "Summary" in navigation_links def test_revised_timing_view_has_info_status_revisedtiming_summary_links( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-revised-timing-edit", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "not_a_link" not in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "not_a_link" not in navigation_links["Status"] assert "RevisedTiming" in navigation_links assert "is_current_page" in navigation_links["RevisedTiming"] assert "Summary" in navigation_links def test_summary_view_has_info_status_summary_links_if_completion_date_unchanged( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-summary", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "not_a_link" not in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "not_a_link" not in navigation_links["Status"] assert "RevisedTiming" not in navigation_links assert "Summary" in navigation_links assert "is_current_page" in navigation_links["Summary"] def test_summary_view_has_info_status_revised_timing_summary_links_if_completion_date_changed( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-summary", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) self.strategic_action_update.changed_value_for_target_completion_date = date( year=2021, month=12, day=25) self.strategic_action_update.save() response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "not_a_link" not in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "not_a_link" not in navigation_links["Status"] assert "RevisedTiming" in navigation_links assert "not_a_link" not in navigation_links["RevisedTiming"] assert "Summary" in navigation_links assert "is_current_page" in navigation_links["Summary"] def test_summary_view_has_info_status_revised_timing_summary_links_if_is_ongoing_changed( self, logged_in_client, test_user): test_user.gov_department = self.supply_chain.gov_department test_user.save() url = reverse( "monthly-update-summary", kwargs={ "supply_chain_slug": self.strategic_action.supply_chain.slug, "action_slug": self.strategic_action.slug, "update_slug": self.strategic_action_update.slug, }, ) self.strategic_action_update.changed_value_for_is_ongoing = True self.strategic_action_update.save() response = logged_in_client.get(url) navigation_links = response.context_data["navigation_links"] assert "Info" in navigation_links assert "not_a_link" not in navigation_links["Info"] assert "Timing" not in navigation_links assert "Status" in navigation_links assert "not_a_link" not in navigation_links["Status"] assert "RevisedTiming" in navigation_links assert "not_a_link" not in navigation_links["RevisedTiming"] assert "Summary" in navigation_links assert "is_current_page" in navigation_links["Summary"]
def test_completed_strategic_action_update(): update = StrategicActionUpdateFactory( status=StrategicActionUpdate.Status.READY_TO_SUBMIT) update.save() yield update
def test_submitted_strategic_action_update(): update = StrategicActionUpdateFactory( status=StrategicActionUpdate.Status.SUBMITTED) update.save() yield update
def test_in_progress_strategic_action_update(): update = StrategicActionUpdateFactory() update.save() yield update