Пример #1
0
def get_platform_stats():
    if request.args:
        validate(request.args, platform_stats_request)

    # If start and end date are not set, we are expecting today's stats.
    today = str(datetime.utcnow().date())

    start_date = datetime.strptime(request.args.get('start_date', today), '%Y-%m-%d').date()
    end_date = datetime.strptime(request.args.get('end_date', today), '%Y-%m-%d').date()
    data = fetch_notification_status_totals_for_all_services(start_date=start_date, end_date=end_date)
    stats = format_admin_stats(data)

    return jsonify(stats)
def test_format_admin_stats_counts_non_test_key_notifications_correctly():
    rows = [
        NewStatsRow('email', 'technical-failure', 'normal', 1),
        NewStatsRow('email', 'created', 'team', 3),
        NewStatsRow('sms', 'temporary-failure', 'normal', 6),
        NewStatsRow('sms', 'sent', 'normal', 2),
        NewStatsRow('letter', 'pending-virus-check', 'normal', 1),
    ]
    stats_dict = format_admin_stats(rows)

    assert stats_dict['email']['total'] == 4
    assert stats_dict['email']['failures']['technical-failure'] == 1

    assert stats_dict['sms']['total'] == 8
    assert stats_dict['sms']['failures']['permanent-failure'] == 0

    assert stats_dict['letter']['total'] == 1
def test_format_admin_stats_only_includes_test_key_notifications_in_test_key_section(
):
    rows = [
        NewStatsRow('email', 'technical-failure', 'test', 3),
        NewStatsRow('sms', 'permanent-failure', 'test', 4),
        NewStatsRow('letter', 'virus-scan-failed', 'test', 5),
    ]
    stats_dict = format_admin_stats(rows)

    assert stats_dict['email']['total'] == 0
    assert stats_dict['email']['failures']['technical-failure'] == 0
    assert stats_dict['email']['test-key'] == 3

    assert stats_dict['sms']['total'] == 0
    assert stats_dict['sms']['failures']['permanent-failure'] == 0
    assert stats_dict['sms']['test-key'] == 4

    assert stats_dict['letter']['total'] == 0
    assert stats_dict['letter']['failures']['virus-scan-failed'] == 0
    assert stats_dict['letter']['test-key'] == 5
Пример #4
0
def get_platform_stats():
    if request.args:
        validate(request.args, platform_stats_request)

    include_from_test_key = request.args.get('include_from_test_key',
                                             'True') != 'False'

    # If start and end date are not set, we are expecting today's stats.
    today = str(convert_utc_to_aet(datetime.utcnow()).date())

    start_date = datetime.strptime(request.args.get('start_date', today),
                                   '%Y-%m-%d').date()
    end_date = datetime.strptime(request.args.get('end_date', today),
                                 '%Y-%m-%d').date()
    end_date = datetime.strptime(request.args.get('end_date', today),
                                 '%Y-%m-%d').date()
    data = fetch_aggregate_stats_by_date_range_for_all_services(
        start_date=start_date,
        end_date=end_date,
        include_from_test_key=include_from_test_key)
    stats = format_admin_stats(data)

    return jsonify(stats)