diff --git a/app/domains.yml b/app/domains.yml index 823337680..8303cbc2f 100644 --- a/app/domains.yml +++ b/app/domains.yml @@ -159,7 +159,11 @@ rpa.gov.uk: agreement_signed: true mcga.gov.uk: owner: Maritime and Coastguard Agency - agreement_signed: true + agreement_signed: true +metoffice.gov.uk: + owner: Met Office + agreement_signed: false + crown: true # Local Government aberdeencityandshire-sdpa.gov.uk: diff --git a/app/main/views/agreement.py b/app/main/views/agreement.py index 9985bd032..c109ff3de 100644 --- a/app/main/views/agreement.py +++ b/app/main/views/agreement.py @@ -2,12 +2,11 @@ from flask import render_template, send_file from flask_login import login_required from app.main import main -from app.main.views.sub_navigation_dictionaries import features_nav from app.main.s3_client import get_mou +from app.main.views.sub_navigation_dictionaries import features_nav from app.utils import AgreementInfo - @main.route('/agreement') @login_required def agreement(): diff --git a/app/utils.py b/app/utils.py index 8f5719529..3aeb6f373 100644 --- a/app/utils.py +++ b/app/utils.py @@ -484,7 +484,7 @@ class AgreementInfo: 'agreement.'.format(self.owner) ) - if self.crown_status is not None: + if self.crown_status is False: return (( '{} Download a copy.' ).format(self._acceptance_required, download_link)) @@ -504,7 +504,7 @@ class AgreementInfo: @property def crown_status_or_404(self): - if self.crown_status is None: + if self.crown_status in {None, True}: abort(404) return self.crown_status diff --git a/tests/app/main/views/test_agreement.py b/tests/app/main/views/test_agreement.py index 1376e8770..532de16da 100644 --- a/tests/app/main/views/test_agreement.py +++ b/tests/app/main/views/test_agreement.py @@ -15,7 +15,7 @@ class _MockS3Object(): @pytest.mark.parametrize('email_address, expected_status', [ - ('test@cabinet-office.gov.uk', 200), + ('test@cabinet-office.gov.uk', 404), ('test@aylesburytowncouncil.gov.uk', 200), ('test@unknown.gov.uk', 404), ]) @@ -36,11 +36,11 @@ def test_show_agreement_page( @pytest.mark.parametrize('email_address, expected_file_fetched, expected_file_served', [ - ( + pytest.mark.xfail(( 'test@cabinet-office.gov.uk', 'crown.pdf', 'GOV.UK Notify data sharing and financial agreement.pdf', - ), + ), raises=AssertionError), ( 'test@aylesburytowncouncil.gov.uk', 'non-crown.pdf', diff --git a/tests/app/main/views/test_index.py b/tests/app/main/views/test_index.py index c4d64a524..f87b43951 100644 --- a/tests/app/main/views/test_index.py +++ b/tests/app/main/views/test_index.py @@ -155,6 +155,23 @@ def test_terms_is_generic_if_user_is_not_logged_in( 'we already have one in place with your organisation.' ), ), + ( + 'michael.fish@metoffice.gov.uk', + ( + 'Your organisation (Met Office) must also accept our data ' + 'sharing and financial agreement. Contact us to get a copy.' + ), + partial( + url_for, + 'main.feedback', + ticket_type='ask-question-give-feedback', + body='agreement-with-owner', + ), + ( + 'Contact us to get a copy of the agreement (Met Office ' + 'hasn’t accepted it yet).' + ), + ), ]) def test_terms_tells_logged_in_users_what_we_know_about_their_agreement( mocker,