def test_calculate_sla_by_practice_calculates_sla_given_transfers_for_2_practices( ): transfers = [ build_transfer(requesting_practice_ods="A12345", sla_duration=timedelta(days=8, hours=1, minutes=10)), build_transfer(requesting_practice_ods="B12345", sla_duration=timedelta(days=4, hours=1, minutes=10)), build_transfer(requesting_practice_ods="A12345", sla_duration=timedelta(days=0, hours=1, minutes=10)), build_transfer(requesting_practice_ods="B12345", sla_duration=timedelta(days=8, hours=1, minutes=10)), build_transfer(requesting_practice_ods="B12345", sla_duration=timedelta(days=5, hours=1, minutes=10)), ] expected = [ PracticeSlaMetrics(ods="A12345", within_3_days=1, within_8_days=0, beyond_8_days=1), PracticeSlaMetrics(ods="B12345", within_3_days=0, within_8_days=2, beyond_8_days=1), ] actual = calculate_sla_by_practice(transfers) actual_sorted = sorted(actual, key=lambda p: p.ods) assert actual_sorted == expected
def test_calculate_sla_by_practice_groups_by_ods_given_two_transfers_from_the_same_practice( ): transfers = [ build_transfer(requesting_practice_ods="A12345"), build_transfer(requesting_practice_ods="A12345"), ] actual = calculate_sla_by_practice(transfers) _assert_has_ods_codes(actual, {"A12345"})
def test_filter_pending_transfers_doesnt_exclude_completed(): pending_transfer = build_transfer(pending=True) completed_transfer = build_transfer(pending=False) transfers = [pending_transfer, completed_transfer] actual = filter_pending_transfers(transfers) expected = [completed_transfer] assert list(actual) == expected
def test_calculate_sla_by_practice_calculates_sla_given_one_transfer_within_3_days( ): transfer = build_transfer(sla_duration=timedelta(hours=1, minutes=10)) actual = calculate_sla_by_practice([transfer]) _assert_first_summary_has_sla_counts(actual, within_3_days=1, within_8_days=0, beyond_8_days=0)
def test_filter_pending_transfers_excludes_pending(): pending_transfer = build_transfer(pending=True) transfers = [pending_transfer] actual = filter_pending_transfers(transfers) expected = [] assert list(actual) == expected
def test_filter_failed_transfers_excludes_failed(): failed_transfer = build_transfer(error_code=99) transfers = [failed_transfer] actual = filter_failed_transfers(transfers) expected = [] assert list(actual) == expected
def test_filter_failed_transfers_doesnt_exclude_suppressions(): suppressed_transfer = build_transfer(error_code=15) transfers = [suppressed_transfer] actual = filter_failed_transfers(transfers) expected = [suppressed_transfer] assert list(actual) == expected
def test_calculate_sla_by_practice_groups_by_ods_given_single_transfer(): transfers = [build_transfer(requesting_practice_ods="A12345")] actual = calculate_sla_by_practice(transfers) _assert_has_ods_codes(actual, {"A12345"})