示例#1
0
def returned_letter_statistics(service_id):

    most_recent = fetch_most_recent_returned_letter(service_id)

    if not most_recent:
        return jsonify({
            'returned_letter_count': 0,
            'most_recent_report': None,
        })

    most_recent_reported_at = datetime.combine(
        most_recent.reported_at, datetime.min.time()
    )

    if most_recent_reported_at < midnight_n_days_ago(7):
        return jsonify({
            'returned_letter_count': 0,
            'most_recent_report': most_recent.reported_at.strftime(DATETIME_FORMAT_NO_TIMEZONE),
        })

    count = fetch_recent_returned_letter_count(service_id)

    return jsonify({
        'returned_letter_count': count.returned_letter_count,
        'most_recent_report': most_recent.reported_at.strftime(DATETIME_FORMAT_NO_TIMEZONE),
    })
示例#2
0
def test_get_returned_letter_count(sample_service):
    # Before 7 days – don’t count
    create_returned_letter(
        sample_service,
        reported_at=datetime(2001, 1, 1)
    )
    create_returned_letter(
        sample_service,
        reported_at=datetime(2010, 11, 1, 23, 59, 59),
    )
    # In the last 7 days – count
    create_returned_letter(
        sample_service,
        reported_at=datetime(2010, 11, 2, 0, 0, 0),
    )
    create_returned_letter(
        sample_service,
        reported_at=datetime(2010, 11, 8, 10, 0),
    )
    create_returned_letter(
        sample_service,
        reported_at=datetime(2010, 11, 8, 10, 0),
    )
    # Different service – don’t count
    create_returned_letter(
        create_service(service_id=uuid.uuid4(), service_name='Other service'),
        reported_at=datetime(2010, 11, 8, 10, 0),
    )

    with freeze_time('2010-11-08 10:10'):
        result = fetch_recent_returned_letter_count(sample_service.id)

    assert result.returned_letter_count == 3