def test_fetch_monthly_template_usage_for_service_does_not_include_cancelled_status(
        sample_template):
    create_ft_notification_status(utc_date=date(2018, 3, 1),
                                  service=sample_template.service,
                                  template=sample_template,
                                  notification_status='cancelled',
                                  count=15)
    create_notification(template=sample_template,
                        created_at=datetime.utcnow(),
                        status='cancelled')
    results = fetch_monthly_template_usage_for_service(
        datetime(2018, 1, 1), datetime(2018, 3, 31),
        sample_template.service_id)

    assert len(results) == 0
Exemple #2
0
def test_fetch_monthly_template_usage_for_service_does_join_to_notifications_if_today_is_not_in_date_range(
        sample_service):
    template_one = create_template(service=sample_service,
                                   template_type='sms',
                                   template_name='a')
    template_two = create_template(service=sample_service,
                                   template_type='email',
                                   template_name='b')
    create_ft_notification_status(utc_date=date(2018, 2, 1),
                                  service=template_two.service,
                                  template=template_two,
                                  count=15)
    create_ft_notification_status(utc_date=date(2018, 2, 2),
                                  service=template_one.service,
                                  template=template_one,
                                  count=20)
    create_ft_notification_status(utc_date=date(2018, 3, 1),
                                  service=template_one.service,
                                  template=template_one,
                                  count=3)
    create_notification(template=template_one, created_at=datetime.utcnow())
    results = fetch_monthly_template_usage_for_service(datetime(2018, 1, 1),
                                                       datetime(2018, 2, 20),
                                                       template_one.service_id)

    assert len(results) == 2

    assert results[0].template_id == template_one.id
    assert results[0].name == template_one.name
    assert results[
        0].is_precompiled_letter == template_one.is_precompiled_letter
    assert results[0].template_type == template_one.template_type
    assert results[0].month == 2
    assert results[0].year == 2018
    assert results[0].count == 20
    assert results[1].template_id == template_two.id
    assert results[1].name == template_two.name
    assert results[
        1].is_precompiled_letter == template_two.is_precompiled_letter
    assert results[1].template_type == template_two.template_type
    assert results[1].month == 2
    assert results[1].year == 2018
    assert results[1].count == 15
Exemple #3
0
def get_monthly_template_usage(service_id):
    try:
        start_date, end_date = get_financial_year(
            int(request.args.get('year', 'NaN')))
        data = fetch_monthly_template_usage_for_service(start_date=start_date,
                                                        end_date=end_date,
                                                        service_id=service_id)
        stats = list()
        for i in data:
            stats.append({
                'template_id': str(i.template_id),
                'name': i.name,
                'type': i.template_type,
                'month': i.month,
                'year': i.year,
                'count': i.count,
                'is_precompiled_letter': i.is_precompiled_letter
            })

        return jsonify(stats=stats), 200
    except ValueError:
        raise InvalidRequest('Year must be a number', status_code=400)
Exemple #4
0
def get_monthly_template_usage(service_id):
    try:
        start_date, end_date = get_financial_year(
            int(request.args.get("year", "NaN")))
        data = fetch_monthly_template_usage_for_service(start_date=start_date,
                                                        end_date=end_date,
                                                        service_id=service_id)
        stats = list()
        for i in data:
            stats.append({
                "template_id": str(i.template_id),
                "name": i.name,
                "type": i.template_type,
                "month": i.month,
                "year": i.year,
                "count": i.count,
                "is_precompiled_letter": i.is_precompiled_letter,
            })

        return jsonify(stats=stats), 200
    except ValueError:
        raise InvalidRequest("Year must be a number", status_code=400)
Exemple #5
0
def test_fetch_monthly_template_usage_for_service(sample_service):
    template_one = create_template(service=sample_service,
                                   template_type='sms',
                                   template_name='a')
    template_two = create_template(service=sample_service,
                                   template_type='email',
                                   template_name='b')
    template_three = create_template(service=sample_service,
                                     template_type='letter',
                                     template_name='c')

    create_ft_notification_status(utc_date=date(2017, 12, 10),
                                  service=sample_service,
                                  template=template_two,
                                  count=3)
    create_ft_notification_status(utc_date=date(2017, 12, 10),
                                  service=sample_service,
                                  template=template_one,
                                  count=6)

    create_ft_notification_status(utc_date=date(2018, 1, 1),
                                  service=sample_service,
                                  template=template_one,
                                  count=4)

    create_ft_notification_status(utc_date=date(2018, 3, 1),
                                  service=sample_service,
                                  template=template_three,
                                  count=5)
    create_notification(template=template_three,
                        created_at=datetime.utcnow() - timedelta(days=1))
    create_notification(template=template_three, created_at=datetime.utcnow())
    results = fetch_monthly_template_usage_for_service(datetime(2017, 4, 1),
                                                       datetime(2018, 3, 31),
                                                       sample_service.id)

    assert len(results) == 4

    assert results[0].template_id == template_one.id
    assert results[0].name == template_one.name
    assert results[0].is_precompiled_letter is False
    assert results[0].template_type == template_one.template_type
    assert results[0].month == 12
    assert results[0].year == 2017
    assert results[0].count == 6
    assert results[1].template_id == template_two.id
    assert results[1].name == template_two.name
    assert results[1].is_precompiled_letter is False
    assert results[1].template_type == template_two.template_type
    assert results[1].month == 12
    assert results[1].year == 2017
    assert results[1].count == 3

    assert results[2].template_id == template_one.id
    assert results[2].name == template_one.name
    assert results[2].is_precompiled_letter is False
    assert results[2].template_type == template_one.template_type
    assert results[2].month == 1
    assert results[2].year == 2018
    assert results[2].count == 4

    assert results[3].template_id == template_three.id
    assert results[3].name == template_three.name
    assert results[3].is_precompiled_letter is False
    assert results[3].template_type == template_three.template_type
    assert results[3].month == 3
    assert results[3].year == 2018
    assert results[3].count == 6