def test_get_feedback_page_with_prefilled_body( client_request, mocker, fake_uuid, prefilled_body, expected_textarea, ): user = active_user_with_permissions(fake_uuid) user.email_address = '*****@*****.**' mocker.patch('app.user_api_client.get_user', return_value=user) mock_post = mocker.patch( 'app.main.views.feedback.deskpro_client.create_ticket') page = client_request.get( 'main.feedback', ticket_type=QUESTION_TICKET_TYPE, body=prefilled_body, ) assert page.select_one('textarea').text == (expected_textarea) client_request.post('main.feedback', ticket_type=QUESTION_TICKET_TYPE, body='agreement', _data={ 'feedback': 'blah', 'name': 'Example', 'email_address': '*****@*****.**' }) message = mock_post.call_args[1]['message'] assert message.endswith('blah') assert 'Please send' not in message
def test_agreement_cant_be_downloaded_unknown_crown_status( logged_in_client, mocker, fake_uuid, ): mock_get_s3_object = mocker.patch('app.main.s3_client.get_s3_object', return_value=_MockS3Object()) user = active_user_with_permissions(fake_uuid) user.email_address = '*****@*****.**' mocker.patch('app.user_api_client.get_user', return_value=user) response = logged_in_client.get(url_for('main.download_agreement')) assert response.status_code == 404 assert mock_get_s3_object.call_args_list == []
def test_show_agreement_page( client_request, mocker, fake_uuid, email_address, expected_status, ): user = active_user_with_permissions(fake_uuid) user.email_address = email_address mocker.patch('app.user_api_client.get_user', return_value=user) client_request.get( 'main.agreement', _expected_status=expected_status, )
def test_show_agreement_page( client_request, mocker, fake_uuid, email_address, expected_links, ): user = active_user_with_permissions(fake_uuid) user.email_address = email_address mocker.patch('app.user_api_client.get_user', return_value=user) page = client_request.get('main.agreement') links = page.select('main .column-two-thirds a') assert len(links) == len(expected_links) for index, link in enumerate(links): assert link['href'] == expected_links[index]()
def test_terms_tells_logged_in_users_what_we_know_about_their_agreement( mocker, fake_uuid, client_request, email_address, expected_terms_paragraph, expected_terms_link, expected_pricing_paragraph, ): user = active_user_with_permissions(fake_uuid) user.email_address = email_address mocker.patch('app.user_api_client.get_user', return_value=user) terms_page = client_request.get('main.terms') pricing_page = client_request.get('main.pricing') assert normalize_spaces(terms_page.select('main p')[1].text) == expected_terms_paragraph if expected_terms_link: assert terms_page.select_one('main p a')['href'] == expected_terms_link() else: assert not terms_page.select_one('main p').select('a') assert normalize_spaces(pricing_page.select('main p')[-1].text) == expected_pricing_paragraph
def test_downloading_agreement( logged_in_client, mocker, fake_uuid, email_address, expected_file_fetched, expected_file_served, ): mock_get_s3_object = mocker.patch('app.main.s3_client.get_s3_object', return_value=_MockS3Object(b'foo')) user = active_user_with_permissions(fake_uuid) user.email_address = email_address mocker.patch('app.user_api_client.get_user', return_value=user) response = logged_in_client.get(url_for('main.download_agreement')) assert response.status_code == 200 assert response.get_data() == b'foo' assert response.headers['Content-Type'] == 'application/pdf' assert response.headers['Content-Disposition'] == ( 'attachment; filename="{}"'.format(expected_file_served)) mock_get_s3_object.assert_called_once_with('test-mou', expected_file_fetched)