Example #1
0
def make_teams(teamscores):
    quiz = Quiz()
    for i, teamscore in enumerate(teamscores, start=1):
        quiz.get_team(i, 'team {}'.format(i))

    for section_nr in range(len(teamscores[0])):
        section = Section(name='section {}'.format(section_nr), quiz=quiz)
        section.scores = lambda i=section_nr: {quiz.teams[j]: t[i] for j, t in enumerate(teamscores)}

    return quiz
Example #2
0
    def test_when_team_has_multiple_responses_expect_only_score_of_first_response(
            self):
        section = Section()
        team = section.get_team('1', 'team1')
        response1 = Response(team=team, timestamp='2020/11/01 20:00:00')
        response1.score = lambda: 5
        section.add_response(response1)

        response2 = Response(team=team, timestamp='2020/11/01 19:00:00')
        response2.score = lambda: 4
        section.add_response(response2)

        response3 = Response(team=team, timestamp='2020/11/01 21:00:00')
        response3.score = lambda: 3
        section.add_response(response3)

        # ACT
        result = section.scores()

        # ASSERT
        self.assertEqual(result, {team: 4})
Example #3
0
    def test_when_merging_teams_expect_scores_are_added(self):
        # ARRANGE
        quiz = Quiz()
        section1 = Section(quiz=quiz)
        team1 = quiz.get_team(1, 'test_1')
        response1 = Response(team=team1)
        response1.score = lambda: 4
        section1.add_response(response1)

        section2 = Section(quiz=quiz)
        team2 = quiz.get_team(2, 'test_2')
        response2 = Response(team=team2)
        response2.score = lambda: 5
        section2.add_response(response2)

        # ACT
        quiz.merge_teams([team1, team2])

        # ASSERT
        self.assertEqual(section2.scores(), {team1: 5})
        self.assertEqual(quiz.scores(), {team1: 9})