Esempio n. 1
0
def test_fetch_service_data_retention_by_id(sample_service):
    email_data_retention = insert_service_data_retention(
        sample_service.id, 'email', 3)
    insert_service_data_retention(sample_service.id, 'sms', 13)
    result = fetch_service_data_retention_by_id(sample_service.id,
                                                email_data_retention.id)
    assert result == email_data_retention
Esempio n. 2
0
def test_insert_service_data_retention_throws_unique_constraint(
        sample_service):
    insert_service_data_retention(service_id=sample_service.id,
                                  notification_type='email',
                                  days_of_retention=3)
    with pytest.raises(expected_exception=IntegrityError):
        insert_service_data_retention(service_id=sample_service.id,
                                      notification_type='email',
                                      days_of_retention=5)
def test_fetch_service_data_retention_only_returns_row_for_service(sample_service):
    another_service = create_service(service_name="Another service")
    email_data_retention = insert_service_data_retention(sample_service.id, 'email', 3)
    letter_data_retention = insert_service_data_retention(sample_service.id, 'letter', 30)
    insert_service_data_retention(another_service.id, 'sms', 5)

    list_of_data_retention = fetch_service_data_retention(sample_service.id)
    assert len(list_of_data_retention) == 2
    assert list_of_data_retention[0] == email_data_retention
    assert list_of_data_retention[1] == letter_data_retention
Esempio n. 4
0
def test_insert_service_data_retention(sample_service):
    insert_service_data_retention(service_id=sample_service.id,
                                  notification_type='email',
                                  days_of_retention=3)

    results = ServiceDataRetention.query.all()
    assert len(results) == 1
    assert results[0].service_id == sample_service.id
    assert results[0].notification_type == 'email'
    assert results[0].days_of_retention == 3
    assert results[0].created_at.date() == datetime.utcnow().date()
def test_fetch_service_data_retention(sample_service):
    email_data_retention = insert_service_data_retention(sample_service.id, 'email', 3)
    letter_data_retention = insert_service_data_retention(sample_service.id, 'letter', 30)
    sms_data_retention = insert_service_data_retention(sample_service.id, 'sms', 5)

    list_of_data_retention = fetch_service_data_retention(sample_service.id)

    assert len(list_of_data_retention) == 3
    assert list_of_data_retention[0] == email_data_retention
    assert list_of_data_retention[1] == sms_data_retention
    assert list_of_data_retention[2] == letter_data_retention
Esempio n. 6
0
def test_fetch_service_data_retention_by_id_returns_none_if_id_not_for_service(
        sample_service):
    another_service = create_service(service_name="Another service")
    email_data_retention = insert_service_data_retention(
        sample_service.id, 'email', 3)
    result = fetch_service_data_retention_by_id(another_service.id,
                                                email_data_retention.id)
    assert not result
Esempio n. 7
0
def create_service_data_retention(service,
                                  notification_type='sms',
                                  days_of_retention=3):
    data_retention = insert_service_data_retention(
        service_id=service.id,
        notification_type=notification_type,
        days_of_retention=days_of_retention)
    return data_retention
Esempio n. 8
0
def test_update_service_data_retention_does_not_update_row_if_data_retention_is_for_different_service(
        sample_service):
    data_retention = insert_service_data_retention(
        service_id=sample_service.id,
        notification_type='email',
        days_of_retention=3)
    updated_count = update_service_data_retention(
        service_data_retention_id=data_retention.id,
        service_id=uuid.uuid4(),
        days_of_retention=5)
    assert updated_count == 0
Esempio n. 9
0
def create_service_data_retention(service_id):
    form = validate(request.get_json(), add_service_data_retention_request)
    try:
        new_data_retention = insert_service_data_retention(
            service_id=service_id,
            notification_type=form.get("notification_type"),
            days_of_retention=form.get("days_of_retention"))
    except IntegrityError:
        raise InvalidRequest(
            message="Service already has data retention for {} notification type"
            .format(form.get("notification_type")),
            status_code=400)

    return jsonify(result=new_data_retention.serialize()), 201
Esempio n. 10
0
def test_update_service_data_retention(sample_service):
    data_retention = insert_service_data_retention(
        service_id=sample_service.id,
        notification_type='sms',
        days_of_retention=3)
    updated_count = update_service_data_retention(
        service_data_retention_id=data_retention.id,
        service_id=sample_service.id,
        days_of_retention=5)
    assert updated_count == 1
    results = ServiceDataRetention.query.all()
    assert len(results) == 1
    assert results[0].id == data_retention.id
    assert results[0].service_id == sample_service.id
    assert results[0].notification_type == 'sms'
    assert results[0].days_of_retention == 5
    assert results[0].created_at.date() == datetime.utcnow().date()
    assert results[0].updated_at.date() == datetime.utcnow().date()