Beispiel #1
0
def test_view_organisation_domains(
    mocker,
    client_request,
    fake_uuid,
    user,
):
    client_request.login(user)

    mocker.patch(
        'app.organisations_client.get_organisation',
        side_effect=lambda org_id: organisation_json(
            org_id,
            'Org 1',
            domains=['example.gov.uk', 'test.example.gov.uk'],
        )
    )

    page = client_request.get(
        'main.edit_organisation_domains',
        org_id=ORGANISATION_ID,
    )

    assert [textbox['value'] for textbox in page.select('input[type=text]')] == [
        'example.gov.uk',
        'test.example.gov.uk',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
    ]
def test_show_confirm_agreement_page(
    client_request,
    mocker,
    mock_get_service_organisation,
    name,
    email,
    expected_paragraph,
):
    mocker.patch(
        'app.models.organisation.organisations_client.get_organisation',
        return_value=organisation_json(
            agreement_signed_version='1.2',
            agreement_signed_on_behalf_of_name=name,
            agreement_signed_on_behalf_of_email_address=email,
        ))
    page = client_request.get('main.service_confirm_agreement',
                              service_id=SERVICE_ONE_ID)
    assert normalize_spaces(
        page.select_one('main p').text) == expected_paragraph
def test_organisation_name_goes_into_cache(mocker, service_one):
    mocker.patch(
        'app.extensions.RedisClient.get',
        return_value=None,
    )
    mock_redis_set = mocker.patch('app.extensions.RedisClient.set', )
    mocker.patch(
        'app.organisations_client.get_organisation',
        return_value=organisation_json(),
    )
    service = Service(service_one)
    service._dict['organisation'] = ORGANISATION_ID

    assert service.organisation_name == 'Test Organisation'
    mock_redis_set.assert_called_once_with(
        f'organisation-{ORGANISATION_ID}-name',
        '"Test Organisation"',
        ex=604800,
    )
Beispiel #4
0
def test_show_agreement_page(
    client_request,
    mocker,
    fake_uuid,
    mock_has_jobs,
    agreement_signed,
    crown,
    expected_links,
):
    org = organisation_json(crown=crown, agreement_signed=agreement_signed)
    mocker.patch('app.organisations_client.get_service_organisation',
                 return_value=org)

    page = client_request.get('main.service_agreement',
                              service_id=SERVICE_ONE_ID)
    links = page.select('main .column-five-sixths a')
    assert len(links) == len(expected_links)
    for index, link in enumerate(links):
        classes, url = expected_links[index]
        assert link.get('class', []) == classes
        assert link['href'] == url()
def test_download_service_agreement(
    logged_in_client,
    mocker,
    mock_get_service_organisation,
    crown,
    expected_status,
    expected_file_fetched,
    expected_file_served,
):
    mocker.patch(
        'app.models.organisation.organisations_client.get_organisation',
        return_value=organisation_json(
            crown=crown
        )
    )
    mock_get_s3_object = mocker.patch(
        'app.s3_client.s3_mou_client.get_s3_object',
        return_value=_MockS3Object(b'foo')
    )

    response = logged_in_client.get(url_for(
        'main.service_download_agreement',
        service_id=SERVICE_ONE_ID,
    ))
    assert response.status_code == expected_status

    if expected_file_served:
        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)
    else:
        assert not expected_file_fetched
        assert mock_get_s3_object.called is False
def test_confirm_agreement_page_persists(
    client_request,
    mocker,
    mock_update_organisation,
    fake_uuid,
):
    mocker.patch(
        'app.models.organisation.organisations_client.get_service_organisation',
        return_value=organisation_json(agreement_signed_version='1.2'))
    client_request.post(
        'main.service_confirm_agreement',
        service_id=SERVICE_ONE_ID,
        _expected_redirect=url_for(
            'main.request_to_go_live',
            service_id=SERVICE_ONE_ID,
            _external=True,
        ),
    )
    mock_update_organisation.assert_called_once_with(
        '1234',
        agreement_signed=True,
        agreement_signed_at='2012-01-01 01:01:00',
        agreement_signed_by_id=fake_uuid,
    )
Beispiel #7
0
    mock_get_non_govuser,
    api_nongov_user_active,
    mock_get_organisations,
    mock_get_organisations_and_services_for_user,
):
    client.login(api_nongov_user_active)
    response = client.get(url_for("main.choose_account"))
    assert "Add a new service" not in response.get_data(as_text=True)
    assert response.status_code == 200


@pytest.mark.parametrize(
    "org_json",
    (
        None,
        organisation_json(organisation_type=None),
    ),
)
def test_get_should_render_add_service_template(
    client_request,
    mocker,
    org_json,
):
    mocker.patch(
        "app.organisations_client.get_organisation_by_domain",
        return_value=org_json,
    )
    page = client_request.get("main.add_service")
    assert page.select_one("h1").text.strip() == "Name your service"
    assert page.select_one("input[name=name]")["value"] == ""
    assert [
def test_organisation_billing_details(purchase_order_number, expected_result):
    organisation = Organisation(
        organisation_json(purchase_order_number=purchase_order_number))
    assert organisation.billing_details == expected_result
Beispiel #9
0
        '.add_organisation',
        _data={
            'name': ".",
            'organisation_type': 'local',
            'crown_status': 'non-crown',
        },
        _expected_status=200,
    )
    assert mock_create_organisation.called is False
    assert page.find("span", {"class": "govuk-error-message"})


@pytest.mark.parametrize('organisation_type, organisation, expected_status', (
    ('nhs_gp', None, 200),
    ('central', None, 403),
    ('nhs_gp', organisation_json(organisation_type='nhs_gp'), 403),
))
def test_gps_can_create_own_organisations(
    client_request,
    mocker,
    mock_get_service_organisation,
    service_one,
    organisation_type,
    organisation,
    expected_status,
):
    mocker.patch('app.organisations_client.get_organisation',
                 return_value=organisation)
    service_one['organisation_type'] = organisation_type

    page = client_request.get(