def METHOD_NAME(
    client, setup_section, day, num_attendances_left
):
    """
    Check that future attendances are deleted when a student is dropped,
    and verify that past section occurrences and attendances are unchanged.
    """
    _, student_user, _, section = setup_section
    # enroll student first
    with freeze_time(timezone.datetime(2020, 6, 1, 0, 0, 0, tzinfo=DEFAULT_TZ)):
        client.force_login(student_user)
        enroll_url = reverse("section-students", kwargs={"pk": section.pk})
        client.put(enroll_url)
    # now drop the student
    with freeze_time(day):
        client.force_login(student_user)
        student = Student.objects.get(user=student_user)
        drop_url = reverse("student-drop", kwargs={"pk": student.pk})
        client.patch(drop_url)
        # refresh student object
        student.refresh_from_db()
        # make sure student is no longer enrolled in section
        assert student.active is False
        assert section.current_student_count == 0
        # student should still be associated with the section though
        assert section.students.count() == 1
        # make sure section occurrence objects are still there
        assert SectionOccurrence.objects.filter(section=section).count() == 2
        # make sure attendance objects have been deleted
        assert student.attendance_set.count() == num_attendances_left