def test_should_be_able_to_get_no_template_usage_history_if_no_notifications_using_template(
        notify_db,
        notify_db_session):
    sms = sample_template(notify_db, notify_db_session)

    results = dao_get_last_template_usage(sms.id)
    assert not results
def test_template_usage_should_ignore_test_keys(
        notify_db,
        notify_db_session,
        sample_team_api_key,
        sample_test_api_key
):
    sms = sample_template(notify_db, notify_db_session)

    one_minute_ago = datetime.utcnow() - timedelta(minutes=1)
    two_minutes_ago = datetime.utcnow() - timedelta(minutes=2)

    team_key = sample_notification(
        notify_db,
        notify_db_session,
        created_at=two_minutes_ago,
        template=sms,
        api_key_id=sample_team_api_key.id,
        key_type=KEY_TYPE_TEAM)
    sample_notification(
        notify_db,
        notify_db_session,
        created_at=one_minute_ago,
        template=sms,
        api_key_id=sample_test_api_key.id,
        key_type=KEY_TYPE_TEST)

    results = dao_get_last_template_usage(sms.id)
    assert results.id == team_key.id
def test_last_template_usage_should_get_right_data(sample_notification):
    results = dao_get_last_template_usage(sample_notification.template_id,
                                          'sms',
                                          sample_notification.service_id)
    assert results.template.name == 'sms Template Name'
    assert results.template.template_type == 'sms'
    assert results.created_at == sample_notification.created_at
    assert results.template_id == sample_notification.template_id
    assert results.id == sample_notification.id
Example #4
0
def get_template_statistics_for_template_id(service_id, template_id):
    template = dao_get_template_by_id_and_service_id(template_id, service_id)

    data = None
    notification = dao_get_last_template_usage(template_id, template.template_type, template.service_id)
    if notification:
        data = notification_with_template_schema.dump(notification).data

    return jsonify(data=data)
def test_should_be_able_to_get_template_usage_history(notify_db, notify_db_session, sample_service):
    with freeze_time('2000-01-01 12:00:00'):
        sms = sample_template(notify_db, notify_db_session)
        notification = sample_notification(notify_db, notify_db_session, service=sample_service, template=sms)
        results = dao_get_last_template_usage(sms.id)
        assert results.template.name == 'Template Name'
        assert results.template.template_type == 'sms'
        assert results.created_at == datetime(year=2000, month=1, day=1, hour=12, minute=0, second=0)
        assert results.template_id == sms.id
        assert results.id == notification.id
def test_should_be_able_to_get_all_template_usage_history_order_by_notification_created_at(
        notify_db,
        notify_db_session,
        sample_service):
    sms = sample_template(notify_db, notify_db_session)

    sample_notification(notify_db, notify_db_session, service=sample_service, template=sms)
    sample_notification(notify_db, notify_db_session, service=sample_service, template=sms)
    sample_notification(notify_db, notify_db_session, service=sample_service, template=sms)
    most_recent = sample_notification(notify_db, notify_db_session, service=sample_service, template=sms)

    results = dao_get_last_template_usage(sms.id)
    assert results.id == most_recent.id
Example #7
0
def get_template_statistics_for_template_id(service_id, template_id):
    template = dao_get_template_by_id_and_service_id(template_id, service_id)
    if not template:
        message = 'No template found for id {}'.format(template_id)
        errors = {'template_id': [message]}
        raise InvalidRequest(errors, status_code=404)

    data = None
    notification = dao_get_last_template_usage(template_id,
                                               template.template_type)
    if notification:
        data = notification_with_template_schema.dump(notification).data

    return jsonify(data=data)
def test_last_template_usage_should_be_able_to_get_all_template_usage_history_order_by_notification_created_at(
        sample_service, notification_type):
    template = create_template(sample_service, template_type=notification_type)

    create_notification(template,
                        created_at=datetime.utcnow() - timedelta(seconds=1))
    create_notification(template,
                        created_at=datetime.utcnow() - timedelta(seconds=2))
    create_notification(template,
                        created_at=datetime.utcnow() - timedelta(seconds=3))
    most_recent = create_notification(template)

    results = dao_get_last_template_usage(template.id, notification_type,
                                          template.service_id)
    assert results.id == most_recent.id
def test_last_template_usage_should_ignore_test_keys(sample_template,
                                                     sample_team_api_key,
                                                     sample_test_api_key):
    one_minute_ago = datetime.utcnow() - timedelta(minutes=1)
    two_minutes_ago = datetime.utcnow() - timedelta(minutes=2)

    team_key = create_notification(template=sample_template,
                                   created_at=two_minutes_ago,
                                   api_key=sample_team_api_key)
    create_notification(template=sample_template,
                        created_at=one_minute_ago,
                        api_key=sample_test_api_key)

    results = dao_get_last_template_usage(sample_template.id, 'sms',
                                          sample_template.service_id)
    assert results.id == team_key.id
def test_last_template_usage_should_be_able_to_get_no_template_usage_history_if_no_notifications_using_template(
        sample_template):
    results = dao_get_last_template_usage(sample_template.id, 'sms',
                                          sample_template.service_id)
    assert not results