Exemple #1
0
def test_calculate_meeting_attendance_no_events(chapter,
                                                user_status_change_factory):
    user_status_change_factory.create_batch(
        20,
        status="active",
        user__chapter=chapter,
        start=factory.Faker("date_between", start_date="-1y",
                            end_date="today"),
        end=factory.Faker("date_between", start_date="today", end_date="+1y"),
    )
    date = fake.date_between(start_date="-15d", end_date="-5d")
    actual_score = Event.calculate_meeting_attendance(chapter, date)
    # No events, should be 0 score
    assert actual_score == 0
Exemple #2
0
def test_calculate_meeting_attendance(chapter, event_factory,
                                      user_status_change_factory):
    score_type = ScoreType.objects.get(name="Attendance at meetings")
    user_status_change_factory.create_batch(
        20,
        status="active",
        user__chapter=chapter,
        start=factory.Faker("date_between", start_date="-1y",
                            end_date="today"),
        end=factory.Faker("date_between", start_date="today", end_date="+1y"),
    )
    event_factory.create_batch(
        10,
        calculate_score=False,
        type=score_type,
        members=5,
        chapter=chapter,
        date=factory.Faker("date_between", start_date="-15d", end_date="-5d"),
    )
    date = fake.date_between(start_date="-15d", end_date="-5d")
    actual_score = Event.calculate_meeting_attendance(chapter, date)
    # 10 events at 25% attendance each eval "15*MEETINGS"
    # Total score is 3.75 and individual event is 3.75/10=0.38
    assert actual_score == 0.39