Example #1
0
def create_service_whitelist(service, email_address=None, mobile_number=None):
    if email_address:
        whitelisted_user = ServiceWhitelist.from_string(service.id, EMAIL_TYPE, email_address)
    elif mobile_number:
        whitelisted_user = ServiceWhitelist.from_string(service.id, MOBILE_TYPE, mobile_number)
    else:
        whitelisted_user = ServiceWhitelist.from_string(service.id, EMAIL_TYPE, '*****@*****.**')

    db.session.add(whitelisted_user)
    db.session.commit()
    return whitelisted_user
Example #2
0
def test_remove_service_whitelist_only_removes_for_my_service(notify_db, notify_db_session):
    service_1 = create_service(notify_db, notify_db_session, service_name="service 1")
    service_2 = create_service(notify_db, notify_db_session, service_name="service 2")
    dao_add_and_commit_whitelisted_contacts([
        ServiceWhitelist.from_string(service_1.id, EMAIL_TYPE, '*****@*****.**'),
        ServiceWhitelist.from_string(service_2.id, EMAIL_TYPE, '*****@*****.**')
    ])

    dao_remove_service_whitelist(service_1.id)

    assert service_1.whitelist == []
    assert len(service_2.whitelist) == 1
def test_remove_service_whitelist_only_removes_for_my_service(notify_db, notify_db_session):
    service_1 = create_service(notify_db, notify_db_session, service_name="service 1")
    service_2 = create_service(notify_db, notify_db_session, service_name="service 2")
    dao_add_and_commit_whitelisted_contacts([
        ServiceWhitelist.from_string(service_1.id, EMAIL_TYPE, '*****@*****.**'),
        ServiceWhitelist.from_string(service_2.id, EMAIL_TYPE, '*****@*****.**')
    ])

    dao_remove_service_whitelist(service_1.id)

    assert service_1.whitelist == []
    assert len(service_2.whitelist) == 1
def test_get_whitelist_separates_emails_and_phones(client, sample_service):
    dao_add_and_commit_whitelisted_contacts([
        ServiceWhitelist.from_string(sample_service.id, EMAIL_TYPE, '*****@*****.**'),
        ServiceWhitelist.from_string(sample_service.id, MOBILE_TYPE, '07123456789')
    ])

    response = client.get('service/{}/whitelist'.format(sample_service.id), headers=[create_authorization_header()])
    assert response.status_code == 200
    assert json.loads(response.get_data(as_text=True)) == {
        'email_addresses': ['*****@*****.**'],
        'phone_numbers': ['07123456789']
    }
Example #5
0
def sample_service_whitelist(notify_db, notify_db_session, service=None, email_address=None, mobile_number=None):
    if service is None:
        service = sample_service(notify_db, notify_db_session)

    if email_address:
        whitelisted_user = ServiceWhitelist.from_string(service.id, EMAIL_TYPE, email_address)
    elif mobile_number:
        whitelisted_user = ServiceWhitelist.from_string(service.id, MOBILE_TYPE, mobile_number)
    else:
        whitelisted_user = ServiceWhitelist.from_string(service.id, EMAIL_TYPE, '*****@*****.**')

    notify_db.session.add(whitelisted_user)
    notify_db.session.commit()
    return whitelisted_user
Example #6
0
def sample_service_whitelist(notify_db, notify_db_session, service=None, email_address=None, mobile_number=None):
    if service is None:
        service = sample_service(notify_db, notify_db_session)

    if email_address:
        whitelisted_user = ServiceWhitelist.from_string(service.id, EMAIL_TYPE, email_address)
    elif mobile_number:
        whitelisted_user = ServiceWhitelist.from_string(service.id, MOBILE_TYPE, mobile_number)
    else:
        whitelisted_user = ServiceWhitelist.from_string(service.id, EMAIL_TYPE, '*****@*****.**')

    notify_db.session.add(whitelisted_user)
    notify_db.session.commit()
    return whitelisted_user
def test_add_and_commit_whitelisted_contacts_saves_data(sample_service):
    whitelist = ServiceWhitelist.from_string(sample_service.id, EMAIL_TYPE, '*****@*****.**')

    dao_add_and_commit_whitelisted_contacts([whitelist])

    db_contents = ServiceWhitelist.query.all()
    assert len(db_contents) == 1
    assert db_contents[0].id == whitelist.id
Example #8
0
def test_get_whitelist_separates_emails_and_phones(client, sample_service):
    dao_add_and_commit_whitelisted_contacts([
        ServiceWhitelist.from_string(sample_service.id, EMAIL_TYPE,
                                     '*****@*****.**'),
        ServiceWhitelist.from_string(sample_service.id, MOBILE_TYPE,
                                     '0412345678'),
        ServiceWhitelist.from_string(sample_service.id, MOBILE_TYPE,
                                     '+1800-555-5555'),
    ])

    response = client.get('service/{}/whitelist'.format(sample_service.id),
                          headers=[create_authorization_header()])
    assert response.status_code == 200
    json_resp = json.loads(response.get_data(as_text=True))
    assert json_resp['email_addresses'] == ['*****@*****.**']
    assert sorted(json_resp['phone_numbers']) == sorted(
        ['+1800-555-5555', '0412345678'])
Example #9
0
def sample_service_whitelist(notify_db, notify_db_session):
    service = create_service(check_if_service_exists=True)
    whitelisted_user = ServiceWhitelist.from_string(
        service.id, EMAIL_TYPE, '*****@*****.**')

    notify_db.session.add(whitelisted_user)
    notify_db.session.commit()
    return whitelisted_user
Example #10
0
def test_add_and_commit_whitelisted_contacts_saves_data(sample_service):
    whitelist = ServiceWhitelist.from_string(sample_service.id, EMAIL_TYPE, '*****@*****.**')

    dao_add_and_commit_whitelisted_contacts([whitelist])

    db_contents = ServiceWhitelist.query.all()
    assert len(db_contents) == 1
    assert db_contents[0].id == whitelist.id
def get_whitelist_objects(service_id, request_json):
    return [
        ServiceWhitelist.from_string(service_id, type, recipient)
        for type, recipient in (
            get_recipients_from_request(request_json, 'phone_numbers',
                                        MOBILE_TYPE) +
            get_recipients_from_request(request_json, 'email_addresses',
                                        EMAIL_TYPE))
    ]
Example #12
0
def get_whitelist_objects(service_id, request_json):
    return [
        ServiceWhitelist.from_string(service_id, type, recipient)
        for type, recipient in (
            get_recipients_from_request(request_json,
                                        'phone_numbers',
                                        MOBILE_TYPE) +
            get_recipients_from_request(request_json,
                                        'email_addresses',
                                        EMAIL_TYPE)
        )
    ]
def test_send_one_off_notification_raises_if_cant_send_to_recipient(
    notify_db_session,
    recipient,
):
    service = create_service(restricted=True)
    template = create_template(service=service)
    dao_add_and_commit_whitelisted_contacts([
        ServiceWhitelist.from_string(service.id, MOBILE_TYPE, '07700900123'),
    ])

    post_data = {
        'template_id': str(template.id),
        'to': recipient,
        'created_by': str(service.created_by_id)
    }

    with pytest.raises(BadRequestError) as e:
        send_one_off_notification(service.id, post_data)

    assert 'service is in trial mode' in e.value.message
Example #14
0
def test_should_not_build_service_whitelist_from_invalid_contact(
        recipient_type, contact):
    with pytest.raises(ValueError):
        ServiceWhitelist.from_string('service_id', recipient_type, contact)
Example #15
0
def test_should_build_service_whitelist_from_email_address(email_address):
    service_whitelist = ServiceWhitelist.from_string('service_id', EMAIL_TYPE,
                                                     email_address)

    assert service_whitelist.recipient == email_address
Example #16
0
def test_should_build_service_whitelist_from_mobile_number(mobile_number):
    service_whitelist = ServiceWhitelist.from_string('service_id', MOBILE_TYPE,
                                                     mobile_number)

    assert service_whitelist.recipient == mobile_number
Example #17
0
def test_should_build_service_whitelist_from_mobile_number(mobile_number):
    service_whitelist = ServiceWhitelist.from_string('service_id', MOBILE_TYPE, mobile_number)

    assert service_whitelist.recipient == mobile_number
Example #18
0
def test_should_build_service_whitelist_from_email_address(email_address):
    service_whitelist = ServiceWhitelist.from_string('service_id', EMAIL_TYPE, email_address)

    assert service_whitelist.recipient == email_address
Example #19
0
def test_should_not_build_service_whitelist_from_invalid_contact(recipient_type, contact):
    with pytest.raises(ValueError):
        ServiceWhitelist.from_string('service_id', recipient_type, contact)