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), })
def test_fetch_most_recent_returned_letter_for_service(sample_service): # Older create_returned_letter( sample_service, reported_at=datetime(2009, 9, 9, 9, 9), ) # Newer create_returned_letter( sample_service, reported_at=datetime(2010, 10, 10, 10, 10), ) # Newest, but different service create_returned_letter( create_service(service_id=uuid.uuid4(), service_name='Other service'), reported_at=datetime(2011, 11, 11, 11, 11), ) result = fetch_most_recent_returned_letter(sample_service.id) assert str(result.reported_at) == '2010-10-10'